【问题标题】:Define object through another objects then initialize those objects in Python通过另一个对象定义对象,然后在 Python 中初始化这些对象
【发布时间】:2016-04-09 01:13:53
【问题描述】:

您好,在我知道这两个对象的值是什么之前,我想将一个对象值定义为同一类的两个对象的值之和。 我需要做类似的事情:

`A=: B+C
 B=10
 C=20 
 print A`

我有一堂课 Set,我正在尝试类似的东西:

class Set(object):
    def __init__(self, w):
        self.value=w
a=Set
c=a
a(10)
print c

但是 c 仍然是类而不是对象实例。有人可以帮帮我吗?

【问题讨论】:

    标签: python class object instance variable-assignment


    【解决方案1】:

    a 是一个类 Setc 也是。 a(10) 生成一个实例但立即丢弃它。您需要稍后创建实例并分配值。类似的东西:

    class Sum(object):
        def __init__(self, *values):
            self.values = values
    
        @property
        def value(self):
            return sum(v.value for v in self.values)
    
    class Value(object):
        def __init__(self, value=0):
            self.value=value
    
    b = Value()
    c = Value()
    a = Sum(b,c)
    b.value = 10
    c.value = 20
    print a.value
    

    【讨论】:

    • 它不起作用,给我TypeError: unsupported operand type(s) for +: 'Value' and 'Value'错误
    • 然后如果我这样做 b = Value() c = Value() a = Sum(b.value,c.value) b.value = 10 c.value = 20 print a.value 我得到 a.value=0,应该是 30。
    猜你喜欢
    • 1970-01-01
    • 2016-05-30
    • 2018-02-10
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    相关资源
    最近更新 更多