在使用Python类时,很多时候很可能使用getMyAttr()
和setMyAtt()
方法获得相同的功能,而不是声明类属性/变量,例如self.myVariable
< / p>
我使用OOP越多,我越倾向于使用类方法来获取和设置属性。 我想知道我正在采取的方向是否正确,如果我以后不会抱歉10K行代码。请指教!
答案 0 :(得分:5)
你正在思考正确的方向,但你应该看看Python properties
做你正在做的事情:
class Foo():
def __init__(self, x):
self.__x = x
@property
def x(self):
return self.__x
@x.setter
def set_x(self, value):
if(value < 0):
self.__x = value
其中你可以嵌套“set”逻辑和“get”逻辑(如果你正在改变如何呈现它。)这使得从类中调用值x
感觉就像你正在访问属性。
foo = Foo(-4)
foo.x
>>> -4
foo.x = 3
foo.x
>>> -4
foo.x = -12
foo.x
>>> -12