我想知道是否有可能让一个属性设置器也返回一个值。下面的代码试图从表面上解释这个问题。
基本上我需要为一个对象设置一个属性,但在我需要检查它是否是唯一的之前。我想知道是否有办法直接将唯一名称返回给用户,而无需事后查询对象的新名称。
class MyClass(object):
def __init__(self,ID):
self._ID = ID
@property
def Name(self):
return DBGetName(self._ID)
@Name.setter
def Name(self, value):
UniqueName = DBGetUniqueName(self._ID,value)
return DBSetName(UniqueName)
Myinstance = MyClass(SomeNumber)
#What I do now
Myinstance.Name = "NewName"
Uniquename = Myinstance.Name
#What I was wondering if possible. Line below is syntactically invalid, but shows the idea.
Name = (Myinstance.Name = "NewName")
编辑:这是一个伪代码,我忘记将值实际传递给内部函数。我的错。