无法从这个问题的其他主题得到一个直接的答案:
在Python中,使用之间的主要区别是什么
class Foo(object):
def __init__(self, x):
self.x = x
和
class Foo(object):
def __init__(self, x):
self._x = x
@property
def x(self):
return self._x
通过它使用@property以这种方式看起来使x只读..但也许有人有更好的答案?谢谢/弗雷德
最佳答案 对于您的示例,是的,这允许您具有只读属性.此外,属性可以让您看起来拥有比实际更多的属性.考虑一个带有.radius和.area的圆圈.该区域可以根据半径计算,而不必同时存储
import math
class Circle(object):
def __init__(self, radius):
self.radius = radius
@property
def area(self):
return math.pi * (self.radius ** 2)