class User:
pass
# Add instance attributes dynamically
jane = User()
jane.name = "Jane Doe"
jane.job = "Data Engineer"
jane.__dict__ # {'name': 'Jane Doe', 'job': 'Data Engineer'}
# Add methods dynamically
def __init__(self, name, job):
self.name = name
self.job = job
User.__init__ = __init__
User.__dict__ # mappingproxy({'__init__': <function __init__ at 0x1036ccae0>})
linda = User("Linda Smith", "Team Lead")
linda.__dict__ # {'name': 'Linda Smith', 'job': 'Team Lead'}
can someone explain me this code from def __init__(self, name, job):
. I learnt init is used to add instance attribute, then why this comment says add method dynamically. and what is User.__init__ = __init__