通过另一个对象定义对象,然后在Python中初始化这些对象

问题描述 投票:0回答:2

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

`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
2个回答
1
投票

a
是一个类
Set
c
也是一个类。
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

0
投票

一种方法是利用对象的dict。您可以使用类的

__dict__
功能。

class First:
    a = "A"
    b = "B"
    c = "C"

class Second:
    a = None
    b = None
    c = None
    d = "D"
    def __init__(self, **kwargs):
        self.__dict__.update(kwargs)

现在您可以使用 First 类实例初始化 Second 类,如下所示:

first = First()
second = Second(**(first.__dict__))
print(second.a)
© www.soinside.com 2019 - 2024. All rights reserved.