python2.7和3.4有什么区别_为什么在Python2.7和Python3.4performan中创建类有区别

好吧,问题似乎出在Python2.7中的旧样式类与新样式类。在

在python3.4中,您可以看到使用object和不使用object之间的区别只是符号的加载(没有那么重要):C:\TEMP>C:\Python34\python.exe

Python 3.4.2 (v3.4.2:ab2c023a9432, Oct 6 2014, 22:15:05) [MSC v.1600 32 bit (Intel)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>>

>>> def a():

... class A(object): pass

...

>>> def b():

... class B(): pass

...

>>> import dis

>>> dis.dis(a)

2 0 LOAD_BUILD_CLASS

1 LOAD_CONST 1 (", line 2>)

4 LOAD_CONST 2 ('A')

7 MAKE_FUNCTION 0

10 LOAD_CONST 2 ('A')

13 LOAD_GLOBAL 0 (object) # Extra step, not that expensive.

16 CALL_FUNCTION 3 (3 positional, 0 keyword pair)

19 STORE_FAST 0 (A)

22 LOAD_CONST 0 (None)

25 RETURN_VALUE

>>> dis.dis(b)

2 0 LOAD_BUILD_CLASS

1 LOAD_CONST 1 (", line 2>)

4 LOAD_CONST 2 ('B')

7 MAKE_FUNCTION 0

10 LOAD_CONST 2 ('B')

13 CALL_FUNCTION 2 (2 positional, 0 keyword pair)

16 STORE_FAST 0 (B)

19 LOAD_CONST 0 (None)

22 RETURN_VALUE

>>>

而在Python 2.7上,还有另一个涉及加载元组的步骤:

^{pr2}$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值