最近我有一个问题很困惑,关于从外部检索属性的最佳方式是什么。
假设我有一个类:
class Thing:
def __init__(self, whatever):
self.whatever = whatever
x = Thing('foo')
现在我知道,如果我想检索 whatever
属性,我可以这样做:
x.whatever
我有一个习惯(可能是因为我来自其他 oo 语言)定义方法来根据需要检索类属性并使用它们而不是直接检索它们,例如:
class Thing:
def __init__(self, whatever):
self.whatever = whatever
def getWhatever(self):
return self.whatever
根据我的经验,我发现使用这种方法可以使事情更容易长期维护,因为如果我编辑数据属性的结构,我只需要编辑特定的方法。
但由于我并不是真正的 Python 老手,所以我很想知道我的做法是否正确,或者其他一些方法是否更好、更符合 Python 风格。想法?
最佳答案
定义明确的 getter 和 setter 是一个 bad practice在 Python 中。相反,使用 properties :
class Thing(object): # New-style class
def __init__(self, whatever):
self._whatever = whatever
@property
def whatever(self):
return self._whatever # Insert complicated calculation here
因此,与其使用 get 方法进行预先规划,不如在实际需要高级行为时引入一个属性,并且 not any earlier .
关于python - 在 Python 中检索数据属性的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7454879/