Python assigning two variables on one line

19,003

You cannot put two statements on one line like that. Your code is being evaluated like this:

self.a = (a, self.b) = b

Either use a semicolon (on second thought, don't do that):

self.a = a; self.b = b

Or use sequence unpacking:

self.a, self.b = a, b

Or just split it into two lines:

self.a = a
self.b = b

I would do it the last way.

Share:
19,003

Related videos on Youtube

tabebqena
Author by

tabebqena

Updated on June 04, 2022

Comments

  • tabebqena
    tabebqena over 1 year
    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)
    

    I get this error:

    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
    
    • Tanky Woo
      Tanky Woo
      You should use ; instead of , in __init__.
  • rickcnagy
    rickcnagy over 9 years
    +1 for sequence unpacking. Definitely can be useful to save space when instantiating several variables to something like 0, such as counters
  • Blender
    Blender over 9 years
    @br1ckb0t: If they all have the same value, you can just do a = b = c = 0.

Related