如何从子类改变父类的变量(在Python中)?



在python中实践继承

我在python上练习继承。我不确定如何改变父类的变量名。

# Parent Class
class Family_Member():
def __init__(self, name):
self.name = name
def catch_phrase(self):
print("I am a family member")
# Child Class
class Mum(Family_Member):
def __init__(self):
Family_Member.__init__(self)
# Attempting to change variable of parent class from child class
My_Mum = Mum("Kerry")

得到

TypeError: __init__() takes 1 positional argument but 2 were given

  1. 为什么会发生这种情况?如何将成员命名为Kerry而不出现此错误

  2. 当我不包含init时,为什么不发生此错误函数在子类中。例如:

    # Attempt 2
    class Family_Member():
    def __init__(self, name):
    self.name = name
    def catch_phrase(self):
    print("I am a family member")
    class Mum(Family_Member): # THIS CLASS IS NOW EMPTY
    pass
    My_Mum = Mum("Kerry")
    print(My_Mum.name)
    
class Family_Member():
def __init__(self, name):
self.name = name
def catch_phrase(self):
print("I am a family member")

class Mum(Family_Member):
def __init__(self, name):
Family_Member.__init__(self, name)

My_Mum = Mum("Kerry")

应该可以工作,是吗?

最新更新