class MyClass(object):
def __init__(self, name):
self.name = name
self._prof = None
self._ischanged = False
@property
def prof(self):
if not self._prof:
self._prof = "Sample Prof"
return self._prof
@prof.setter
def prof(self, value, anothervalue):
pass
Run Code Online (Sandbox Code Playgroud)
在这里您可以使用以下方法获得教授:
myclass = MyClass("sam")
myclass.prof
Run Code Online (Sandbox Code Playgroud)
但我找不到设置 prof 值的方法。
在上面的代码中,我如何将两个值传递给教授?
您不能将两个值传递给 setter。当你这样做时:
instance.property = whatever
Run Code Online (Sandbox Code Playgroud)
python 使用instance(as self) 和whatever参数调用 setter 。
您可以传递一个 2 元组:
myclass.prof = ('one', 'two')
Run Code Online (Sandbox Code Playgroud)
在这种情况下,setter 将传递 2-tuple('one', 'two')作为值。如果这不是您想要的,最好使用普通方法来设置值。例如:
myclass.set_prof(value1, value2)
Run Code Online (Sandbox Code Playgroud)