我需要一种方法来解决这个问题,这很简单,但有些事情看起来并不合适。
我的MyClass
有foo
和bar
,并不总是被实例化,而且我有baz
这个属性foo
{{ 1}}吧。
and
拥有一个只有这个组合返回值的@property是对的吗?
我应该使用其他方法吗?比如class MyClass(object)
def __init__(self, *args, **kwargs):
self.foo = kwargs('foo', None)
self.bar = kwargs('bar', None)
@property
def baz(self):
if self.foo is not None and self.bar is not None
return self.foo + self.bar
else:
return None
@baz.setter
def baz(self, baz):
self.__baz = baz
# i plan using outside also
my_class = MyClass(foo=1,bar=2)
print my_class.baz
# 3
my_class = MyClass(foo=1)
print my_class.baz
# None
?
编辑:副本没有回答我的问题,我使用的类有一个对象继承,我的问题是关于@property getter是否可以将baz值返回为__setattr__
而不是另一种方法< / p>