Python 属性函数顺序错误

问题描述 投票:0回答:1

由于某种原因,当我切换属性函数的参数时,它会抛出错误。我只是想了解为什么。

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

为什么我不被允许转换参数?

python methods properties arguments
1个回答
0
投票

在属性调用中,setter 和 getter 的顺序错误。

© www.soinside.com 2019 - 2024. All rights reserved.