我们说我有以下代码:
class MyClass(object):
def __init__(self, param):
self.param = param
@property
def super_param(self):
return Param(self, self.param)
class Param(object):
def __init__(self, parent, param):
self.param = param
self.parent = parent
@property
def get_parent(self):
return self.parent
我的问题是,以这种方式使用@property装饰器被认为是不好的做法吗?有任何优点或缺点吗?
答案 0 :(得分:2)
为什么不
class MyClass(object):
def __init__(self, param):
self.param = Param(self, param)
我认为从一个地产中归还一个类并没有什么特别的错误;一个更好的问题是,你想通过这样做完成什么?
修改:如果您不想更改,请将其设为私有财产:
class MyClass(object):
def __init__(self, param):
self._param = param # naming convention, 'don't muck with it'
# OR
self.__param = param # name mangled
@property
def param(self):
return self._param