由于某种原因,当我切换属性函数的参数时,它会抛出错误。我只是想了解为什么。
class Geeks:
def __init__(self):
self.\_age = 0
# function to get value of _age
def get_age(self):
print("getter method called")
return self._age
# function to set value of _age
def set_age(self, a):
print("setter method called")
self._age = a
age = property(get_age, set_age)
mark = Geeks()
mark.age = 10
mark.age
print(mark.age)
这个输出
setter method called
getter method called
getter method called
10
当我像这样切换
age = property(get_age, set_age)
时会发生错误
class Geeks:
def __init__(self):
self.\_age = 0
# function to get value of _age
def get_age(self):
print("getter method called")
return self._age
# function to set value of _age
def set_age(self, a):
print("setter method called")
self._age = a
age = property(set_age, get_age)
mark = Geeks()
mark.age = 10
mark.age
print(mark.age)
这个输出
ERROR!
Traceback (most recent call last):
File "<string>", line 19, in <module>
TypeError: Geeks.get_age() takes 1 positional argument but 2 were given
为什么我不被允许转换参数?
在属性调用中,setter 和 getter 的顺序错误。