我想创建一个具有 2 个输入属性和 1 个输出属性的类,这样只要修改其中一个输入属性,输出属性就会自动修改
我已经尝试将属性定义为构造函数内部和外部的实例变量,但在任何一种情况下,在实例化对象之后,输出属性都保持固定在实例化时设置的值
class Example():
def __init__(self,n):
self.name=n
inA=1
inB=1
if inA==1 and inB==1:
outA=1
else:
outA=0
当实例化的 outA 按预期设置为 1 时 但如果我尝试更新: object.inA=0
object.outA 保持为 1 而我需要将其更新为 0
尽可能避免使用函数。 python 和 OOP 的新手,如果这个问题是荒谬的或有一个明显的答案,我们深表歉意
请您参考如下方法:
如果您想要依赖于其他实例属性的实例属性,属性是可行的方法。
class Example:
def __init__(self, n):
self.name = n
self.inA = 1
self.inB = 1
@property
def outA(self):
return self.inA and self.inB
您可以像访问常规实例属性 obj.outA 一样访问 outA。
>>> my_obj = Example("example")
>>> my_obj.outA
1
更改属性 inA 和 inB 会影响 outA。
>>> my_obj.inA = 0
>>> my_obj.outA
0
