Почему я не могу добавить еще одну переменную в классе, используя setter и getter? - PullRequest
0 голосов
/ 19 мая 2019

Я написал класс под названием человек и использовал сеттер и геттер.Сначала код работал нормально, когда я использовал одну переменную. Однако, когда я добавил другую переменную, он сказал, что пропущены 2 обязательных позиционных аргумента: «имя» и «возраст».

 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 голосов
/ 19 мая 2019

Ваш метод __init__ принимает два аргумента, а именно имя и возраст.Вы не предоставляете никаких аргументов при создании экземпляра Person.Поэтому вы можете сделать следующее:

p1 = person('Armeen', 20)

В отличие от

p1 = person()

Или если вы хотите, чтобы пользователь не указывал имя и возраст во время создания экземпляра,Вы можете установить эти параметры как необязательные, выполнив следующие изменения в __init__

def __init__(self, name = None, age = None): ##This would work with your code as well
...