从列表初始化python属性

从列表初始化python属性,python,Python,我想使用作为初始值设定项传递的列表初始化类的对象,如案例2所示,但这显示了语法错误。 在python中有什么方法可以做到这一点吗 我发现我可以在这里使用解包。谢谢你的回答。 我能把这两件事结合起来做吗 我知道我可以再加上一个数字并将其传递给初始化对象,但有没有办法将这两个数字结合起来呢 class C: def __init__(self, a,b): self.a = a self.b = b Case 1: Obj1 = C(1,2) print O

我想使用作为初始值设定项传递的列表初始化类的对象,如案例2所示,但这显示了语法错误。 在python中有什么方法可以做到这一点吗

我发现我可以在这里使用解包。谢谢你的回答。 我能把这两件事结合起来做吗 我知道我可以再加上一个数字并将其传递给初始化对象,但有没有办法将这两个数字结合起来呢

class C:
    def __init__(self, a,b):
        self.a = a
        self.b = b

Case 1:
Obj1 = C(1,2)
print Obj1.a
print Obj1.b

Case 2:
l= [1,2]
Obj2 = C(l)
print Obj2.a
print Obj2.b
您想使用运算符
*

Obj1 = C(1,2)
Obj1 = C(*[1,2])
两者严格等同:

class C:
    def __init__(self, a,b):
        self.a = a
        self.b = b
        self.c = c

l= [1,2]
Obj2 = C(*l,3)


您想使用运算符
*

Obj1 = C(1,2)
Obj1 = C(*[1,2])
两者严格等同:

class C:
    def __init__(self, a,b):
        self.a = a
        self.b = b
        self.c = c

l= [1,2]
Obj2 = C(*l,3)



您可以通过
*

Obj1 = C(1,2)
Obj1 = C(*[1,2])

您可以通过
*

Obj1 = C(1,2)
Obj1 = C(*[1,2])

您有两种选择,可以在外部或内部解包:

Inide:

l = [1, 2]
Obj2 = C(*l)
print(Obj2.a)
print(Obj2.b)
外部:

class C:
    def __init__(self, l):
        self.a, self.b = l
C([1,2])

您有两种选择,可以在外部或内部解包:

Inide:

l = [1, 2]
Obj2 = C(*l)
print(Obj2.a)
print(Obj2.b)
外部:

class C:
    def __init__(self, l):
        self.a, self.b = l
C([1,2])

使用解包:
Obj2=C(*l)
请参见此处获取答案:使用解包:
Obj2=C(*l)
请参见此处获取答案:请在回答之前检查重复项。我知道这是重复项,但实际上OP只是不知道此运算符:)。但是谢谢你指出,我肯定会链接到其他问题,我会尽快删除这个答案。你是对的,OP不知道接线员的情况。但现在这是一个重复的问题,在顶部有一个链接供大家查看。请将此答案保留在此处,以便其他人可以看到此讨论。请在回答之前检查重复项。我知道这是重复项,但实际上OP只是不知道此运算符:)。但是谢谢你指出,我肯定会链接到其他问题,我会尽快删除这个答案。你是对的,OP不知道接线员的情况。但现在这是一个重复的问题,在顶部有一个链接供大家查看。请将此答案保留在此处,以便其他人可以看到此讨论。