Lets assume that a class is a template which has data members without values assigned to it. When an object is created out of a class, values need to be passed, so that the data members of that class gets values assigned to it. This is made possible by a reserved method __init__ in python (a.k.a constructor in general).
Object creation is not possible without the __init__ method. Hence, in case it is not done, it is automatically implemented by default, by python as in the following.
def __init__(self):
# Empty default constructor
non-parameterized __init__ method, example:
class Topup_wallet:
# non-parameterized constructor
def __init__(self):
self.topup_amount = 10
# Topup method
def topup(self):
print('{} Points added up to wallet!'.format(self.topup_amount))
wallet = Topup_wallet()
wallet.topup()
Note that, in this example, __init__ method does not accept any arguments while creating an object.
Output:
10 Points added up to wallet!
parameterized __init__ method, example:
class Topup_wallet:
# non-parameterized constructor
def __init__(self, my_topup_amount):
self.topup_amount = my_topup_amount
# Topup method
def topup(self):
print('{} Points added up to wallet!'.format(self.topup_amount))
wallet = Topup_wallet('20')
wallet.topup()
Note that, in this example, __init__ method accepts an argument (my_topup_amount) while creating the object.
Output:
20 Points added up to wallet!
In-built class functions in python
| hasattr(obj, attr_name) | returns true if attribute exists |
| getattr(obj, attr_name) | returns the value of the attribute |
| setattr(obj, attr_name, attr_value) | sets value to the attribute |
| delattr(obj, attr_name) | deletes attribute |
Class functions, Example:
class Topup_wallet:
# non-parameterized constructor
def __init__(self, my_topup_amount):
self.topup_amount = my_topup_amount
# Topup method
def topup(self):
print('{} Points added up to wallet!'.format(self.topup_amount))
wallet = Topup_wallet('20')
wallet.topup()
print('')
print('Check if "topup_amount" attribute exists')
print(hasattr(wallet, "topup_amount"))
print('')
print('display the value assigned to attribute "topup_amount" during object creation')
print(getattr(wallet, "topup_amount"))
print('')
print('Change the value that was assigned to attribute "topup_amount" during object creation, to 30')
setattr(wallet, "topup_amount", "30")
print('')
print('display the changed value')
print(getattr(wallet, "topup_amount"))
print('')
print('delete attribute "topup_amount"')
delattr(wallet, 'topup_amount')
print('')
print('Check if "topup_amount" attribute exists')
print(hasattr(wallet, "topup_amount"))
print('')
Output:
20 Points added up to wallet! Check if "topup_amount" attribute exists True display the value assigned to attribute "topup_amount" during object creation 20 Change the value that was assigned to attribute "topup_amount" during object creation, to 30 display the changed value 30 delete attribute "topup_amount" Check if "topup_amount" attribute exists False










