is there a difference between one line and many lines

Daniel Kluev dan.kluev at gmail.com
Thu Apr 21 06:17:24 EDT 2011


On Thu, Apr 21, 2011 at 8:38 PM, vino19 <vinograd19 at gmail.com> wrote:
> Hello, I'm a newbie.
> What's the defference between
>*skip*

What is version of CPython?
In 2.7.1 and 3.1.3 both versions return True, and moreover, are
compiled to identical bytecode.

>>> def test1():
...     a=-6; b=-6; c = a is b
...     return c
>>> def test3():
...     a=-6
...     b=-6
...     c = a is b
...     return c
>>> test1()
True
>>> test3()
True
>>> dis.dis(test1)
  2           0 LOAD_CONST               1 (-6)
              3 STORE_FAST               0 (a)
              6 LOAD_CONST               1 (-6)
              9 STORE_FAST               1 (b)
             12 LOAD_FAST                0 (a)
             15 LOAD_FAST                1 (b)
             18 COMPARE_OP               8 (is)
             21 STORE_FAST               2 (c)
  3          24 LOAD_FAST                2 (c)
             27 RETURN_VALUE
>>> dis.dis(test3)
  2           0 LOAD_CONST               1 (-6)
              3 STORE_FAST               0 (a)
  3           6 LOAD_CONST               1 (-6)
              9 STORE_FAST               1 (b)
  4          12 LOAD_FAST                0 (a)
             15 LOAD_FAST                1 (b)
             18 COMPARE_OP               8 (is)
             21 STORE_FAST               2 (c)
  5          24 LOAD_FAST                2 (c)
             27 RETURN_VALUE

So AFAIK, there is no difference for interpreter itself, its purely
syntactic, and is compiled to exactly same bytecode.

-- 
With best regards,
Daniel Kluev



More information about the Python-list mailing list