INHERITANCE in python3

Ethan Furman ethan at stoneleaf.us
Thu Dec 19 12:28:21 EST 2019


On 12/19/2019 06:22 AM, Pieter van Oostrum wrote:
> Random832 writes:
>> On Wed, Dec 18, 2019, at 23:10, wrote:

[vahid asadi]
>>> my problem here is why this attribute is not recognize by python and it
>>> raise an traceback error that said 'there is no such p.family
>>> attribute'. although i use multiple   inheritance with 'super ' it not
>>> works. thanks for your help.
>>>
>>>     class Username:
>>>         def __init__(self, name, *args):
>>>              self.name= name
>>>
>>>     class Userfamily:
>>>          def __init__(self, family, *args):
>>>             self.family = family
>>>
>>>     class Person(Username, Userfamily):
>>>          def __init__(self, *args):
>>>             super().__init__(*args)
>>>
>>>     p = Person("v", "aaa")
>>>     print(p.name)
>>>     print(p.family)

[Random32]
>> The Username class also needs to call super(). In general, super() is
>> intended to be used with all classes that might be part of a multiple
>> inheritance hierarchy, not just the derived one.

[Pieter van Oostrum]
> Just for safety, also add it* to the Userfamily class.


* a call to super()  (in case anybody else misreads that like I did)

--
~Ethan~


More information about the Python-list mailing list