使用仅调用外部方法的setter方法时的最佳做法是什么。我不希望用户更改此值。 我有以下结构
class Instruction(object):
def __init__(self, address):
super(Instruction, self).__init__()
self.address = address
self.mnem = self.__set_mnem()
@property
def mnem(self):
return self.__mnem
def __set_mnem(self):
return extModule.GetMnem(self.address)
我应该有这个
@mnem.setter
def mnem(self, mnem=None):
if not mnem:
self.__mnem = extModule.GetMnem(self.address)
else:
self.__mnem = None
答案 0 :(得分:5)
如果你的财产应该是只读的,你根本就不给它一个二传手,不。设置属性访问的私有属性:
class Instruction(object):
def __init__(self, address):
super(Instruction, self).__init__()
self.address = address
self.__mnem = extModule.GetMnem(self.address)
@property
def mnem(self):
return self.__mnem
现在Instruction().mnem
是只读的,并且在创建实例时会设置它的值。