为什么我不能使用setter和getter在类中添加另一个变量?

时间:2019-05-19 12:57:34

标签: python oop setter getter

我写了一个名为person的类,并使用了setter和getter。最初,当我使用一个变量时,代码运行良好。但是,当我添加另一个变量时,它说缺少两个必需的位置参数:“名称”和“年龄”。

 class person:
    def __init__(self, name, age):
        self.name = name
        self.age = age 


    def set_name(self,y):
        self.name = y

    def get_name(self):
        return self.name


    def set_age(self,x):
        self.age = x

    def get_age(self):
        return self.age

p1 = person()
p1.set_name("Armeen")
p1.set_age("20")
print(p1.get_age())
print(p1.get_name())

1 个答案:

答案 0 :(得分:0)

您的__init__方法采用两个参数,即名称和年龄。创建Person的实例时,您没有提供任何参数。因此,您可能需要执行以下操作:

p1 = person('Armeen', 20)

相反
p1 = person()

或者,如果您不想在创建实例时允许用户指定名称和年龄,则可以通过在__init__

中进行以下更改来将这些参数设置为可选参数
def __init__(self, name = None, age = None): ##This would work with your code as well