我尝试编写代码 2 来做与代码 1 相同的事情。但是,代码 2 不起作用。为什么?如何在 python 的方法中使用属性函数?
(代码 1)
class Spam:
def __init__(self, is_less_sodium):
self.__is_less_sodium = is_less_sodium
def __getter(self):
return self.__is_less_sodium
is_less_sodium = property(__getter)
my_spam = Spam(False)
print(my_spam.is_less_sodium)
########## Result ##########
# False
(代码 2)
class Spam:
def __init__(self, is_less_sodium):
self.__is_less_sodium = is_less_sodium
Spam.is_less_sodium = property(self.__getter)
def __getter(self):
return self.__is_less_sodium
my_spam = Spam(False)
print(my_spam.is_less_sodium)
########## Result ##########
# Traceback (most recent call last):
# File "code2.py", line 10, in <module>
# print(my_spam.is_less_sodium)
# TypeError: __getter() takes 1 positional argument but 2 were given
我理解代码1中的返回值property(__getter)是赋值给的is_less_sodium,这是一个类变量Spam。但是,这种理解似乎是错误的。
慕尼黑的夜晚无繁华
相关分类