Creating and Using Objects in Python: A Step-by-Step Guide
Creating Objects
- An object is created by calling the class name followed by a pair of parenthesis.
class Person:
pass
p1 = Person() # Creating the object 'p1'
print(p1) # -> '<__main__.Person object at 0x0A...>'
- The output of
printon objectp1, tell you what class it belongs to and hints on memory address it is referenced to.
Setting Attributes
-
You can set attributes, one a time, to an instantiated object and access it using the dot notation.
-
The value which is set to an attribute can be anything: a
Python primitive, abuilt-in data type, anotherobject. It can even be a function or a class.
Example
class Person:
pass
p1 = Person()
p1.fname = 'Jack'
p1.lname = 'Simmons'
print(p1.fname, '-', p1.lname) # -> 'Jack - Simmons'
Setting Attributes Contd..
-
You can also set multiple attributes, at once, by defining the initializer method,
__init__, inside the class. -
This method is called by default, during an object creation.
-
It takes values passed inside the parenthesis, during an object creation, as it's arguments.
-
It also takes
selfas the first argument, which refers to the current object.
Setting Attributes Example
- In the following example,
Personclass sets two attributes using__init__method.
class Person:
def __init__(self, fname, lname):
self.fname = fname
self.lname = lname
p1 = Person('George', 'Smith')
print(p1.fname, '-', p1.lname) # -> 'George - Smith'
Documenting a Class
Each class or a method definition can have an optional first line, known as docstring.
Example
class Person:
'Represents a person.'
def __init__(self, fname, lname):
'Initialises two attributes of a person.'
self.fname = fname
self.lname = lname
Understanding a Class
Once documented, you can load the script into an interactive interpreter and run help command on Person class.
>>>help(Person)
Help on class Person in module __main__:
class Person(builtins.object)
| Represents a person.
|
| Methods defined here:
|
| __init__(self, fname, lname)
| Initialises two attributes of a person.
|
... and more