'I'm trying to set up a class with methods from the same property that can be called by the same name using @property instead of the function property
I'm trying to create a class with @property, but i keep getting an recursion error and don't know why.
class residente:
def __init__(self, name, age, program):
self.name = name
self.age = age
self.program = program
print(self.name, "is a student living in City", self.age, "years old", "and studying a", self.program, ".")
@property
def name(self):
return self.name
@name.setter
def name(self, name):
self.name = name
@name.deleter
def name(self):
del self.name
@property
def age(self):
return self.age
@age.setter
def age(self, age):
self.age = age
@age.deleter
def age(self):
del self.age
@property
def program(self):
return self.program
@program.setter
def program(self, program):
self.program = program
@program.deleter
def program(self):
del self.program
Bernardo = residente("Bernardo", "23", "Medicine in English")
I keep getting the following error
Output:
Solution 1:[1]
Reusing name, age, and program variables result in the setters calling themselves.
class residents:
# self.name = name
# self.age = age
# self.program = program
#
# results in the setter calling itself
#
# Changed to
# self._name = name
# self._age = age
# self._program = program
def __init__(self, name, age, program):
self._name = name
self._age = age
self._program = program
print(self.name, "is a student living in City", self.age, "years old",
"and studying a", self.program, ".")
@property
def name(self):
return self._name
@name.setter
def name(self, name):
self.name = _name
@name.deleter
def name(self):
del self._name
@property
def age(self):
return self._age
@age.setter
def age(self, age):
self.age = _age
@age.deleter
def age(self):
del self._age
@property
def program(self):
return self._program
@program.setter
def program(self, program):
self.program = program
@program.deleter
def program(self):
del self.program
Bernardo = residente("Bernardo", "23", "Medicine in English")
Result:
Bernardo is a student living in City 23 years old and studying a Medicine in English .
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
