Python在一行上分配两个变量

tab*_*ena 8 python int self

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

    def where(self):
        print 'face : ' , self.a , "face : " ,self.b

    def value(self):
        print self.a + self.b

d1=Domin(1 , 5)   

d1=Domin(20 , 15)
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Traceback (most recent call last):
  File "test2.py", line 13, in <module>
    d1=Domin(1 , 5)
  File "test2.py", line 5, in __init__
    self.a=a , self.b=b
TypeError: 'int' object is not iterable
Run Code Online (Sandbox Code Playgroud)

Ble*_*der 25

你不能在这一行上放两个语句.您的代码正在评估如下:

self.a = (a, self.b) = b
Run Code Online (Sandbox Code Playgroud)

要么使用分号(第二个想法,不要那样做):

self.a = a; self.b = b
Run Code Online (Sandbox Code Playgroud)

或者使用序列解包:

self.a, self.b = a, b
Run Code Online (Sandbox Code Playgroud)

或者只是将它分成两行:

self.a = a
self.b = b
Run Code Online (Sandbox Code Playgroud)

我会以最后的方式做到这一点.

  • @ br1ckb0t:如果它们都具有相同的值,则可以执行“ a = b = c = 0”。 (2认同)