DEV Community

Johnson Ogwuru
Johnson Ogwuru

Posted on

Python Instantiate Class Creating and Instantiating a simple class in python

Last month i started taking a course on python and i stumbled on a tutorial on object oriented programming from the python perspective, and through out this week and coming weeks i would be sharing what i have been able to learn.

Today we would be looking at class creation and instantiation. To help us understand this better we would be creating an employee class, each employee would have attributes like name,email,pay,etc. Now lets have a head first attempt at creating and instantiating a class.

Alt text of image

The above code snippet shows how to create a class in python, the pass keyword under tells python to neglect the class, without this keyword, python would see the class as an empty one and return an error. A class is a blue print for creating instances and each unique employee that we create would be an instance of that class.

Example:
Alt text of image

They above code shows the creation of unique instances of the Employee class and to assign data to this instances we would be using instance variables. Instance variables contain data that is unique to the instance alone. To create instance variables for each employee we would do the following:

Alt text of image

Imagine a situation we have 1000 employees to create, trying to set the variables each time we want to create an employee would mean having a-lot of code and errors. But python allows you to be able to create instances automatically and this we could do using its (init) method.

Alt text of image

the init method after creation receives an instance automatically called (self), and we also pass in other attributes of the Employee class like name and pay. Next stop we would be looking at setting the instance.

Alt text of image
with that done, when we create our employee, the instance would be passed in automatically, all we would bother ourselves with would be to provide the employee attributes.
Alt text of image
on running this script (emp_1) would be passed into the (init) method as self.
Now suppose we want to print each users fullname, we could actually use the format function in python to concatenate strings to get the fullname, but this would require doing this every time we want to print an employees fullname, but to better enjoy the advantage of code re-use, we would be creating a method to help us generate each employees fullname.
Alt fullname

That is it for class and instance of a class creation. Below is the full source code for the piece.
Alt text of image

(Note)
while trying to print employees fullname, you could either do this--> (emp_1.fullname()) or you could try (Employee.fullname(emp_1)), they both mean the-same thing, in-fact the later is what happens in the background when you run the program.

Tomorrow we would be looking at the difference between instance variables and class variables, the difference between regular,static and instance methods

Latest comments (9)

Collapse
 
cheikhoudiallo15 profile image
cheikhoudiallo15

I needed it this simple for it to make sense lol thanks

Collapse
 
eissah_nassir profile image
Ei-ssah

am writing a simple program where i want the userInput to be the instance of my class but i have failed to do so for example

name = input("Enter your name")

name = SomeClass(name)

so i can be able to perform some methods on it

Collapse
 
linomanzz profile image
linoman-zz

plz do more of the great tutorials - they rock !!!!

Collapse
 
sagaryadav profile image
sagaryadav

I think your way of explaining is amazing. I was confusing while going through the code somewhere else to understand the same concept. You explained it in such a simple manner that I could understand it.

Collapse
 
ogwurujohnson profile image
Johnson Ogwuru

I'm happy you enjoyed it, thanks for the kind words

Collapse
 
sagaryadav profile image
sagaryadav

Kindly update this image. res.cloudinary.com/practicaldev/im...

There appears to be a typo.
emp_1 repeated instead of emp_2

Collapse
 
ogwurujohnson profile image
Johnson Ogwuru

Sure would do.. Thanks

Collapse
 
val_baca profile image
Valentin Baca • Edited

Nice. Some constructive criticism:

Try using the markdown blocks for code:

code = awesome
Enter fullscreen mode Exit fullscreen mode

Makes for a more readable page and saves you time (copy and paste code instead of taking and uploading screenshots) and allows readers to copy code directly.

Collapse
 
ogwurujohnson profile image
Johnson Ogwuru

Thanks alot, I'm new here. I actually appreciate the help, would start using that.