Python_3.0与2.0的用法区别.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.性能 Py3.0运行pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好的优化结果。 2.编码 Py3.0源码文件默认使用utf-8编码,这就使得以下代码是合法的: 中国 = china print(中国) china 3.语法 1)去除了,全部改用!= 2)去除``,全部改用repr() 3)关键词加入as和with,还有True,False,None 4)整型除法返回浮点数,要得到整型结果,请使用// 5)加入nonlocal语句。使用noclocal x可以直接指派外围(非全局)变量 6)去除print语句,加入print()函数实现相同的功能。同样的还有exec语句,已经改为exec()函数 1? ? ? ? print语句被print()函数取代了,可以使用关键字参数来替代老的print特殊语法。例如: Old: print The answer is, 2*2 2? ? ? ? New: print(The answer is, 2*2) 3? ? ? ? Old: print x,? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???# 使用逗号结尾禁止换行 4? ? ? ? New: print(x, end= )? ?? ?? ?? ?? ?? ?? ?# 使用空格代替换行 5? ? ? ? Old: print? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???# 输出新行 6? ? ? ? New: print()? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?# 输出新行 7? ? ? ? Old: print sys.stderr, fatal error 8? ? ? ? New: print(fatal error, file=sys.stderr) 9? ? ? ? Old: print (x, y)? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? # 输出repr((x, y)) 10? ? ? ? New: print((x, y))? ?? ?? ?? ?? ?? ?? ?? ?? ?# 不同于print(x, y)! 7) ? ? ? ? 改变了顺序操作符的行为,例如xy,当x和y类型不匹配时抛出TypeError而不是返回随即的bool值 8)输入函数改变了: Old: guess = int(raw_input(Enter an integer : )) #读取键盘输入的方法 New: guess = int(input(Enter an integer : )) 9)去除元组参数解包。不能def(a, (b, c)):pass这样定义函数了 10)新式的8进制字变量,相应地修改了oct()函数。2.x的方式如下: 0666 438 oct(438) 0666 3.0这样: 0666 SyntaxError: invalid token (pyshell#63, line 1) 0o666 438 oct(438) 0o666 11)增加了2进制字面量和bin()函数 bin(438) 0b110110110 _438 = 0b110110110 _438 0b110110110 12)扩展的可迭代解包。在Py3.0里,a, b, *rest = seq和 *rest, a = seq都是合法的,只要求两点:rest是list对象和seq是可迭代的。 13)新的super(),可以不再给super()传参数, class C(object): ? ?? ?def __init__(self, a): ? ?? ?? ?? ? print(C, a) class D(C): ? ?? ?def __init(self, a): ? ?? ?? ?? ? super().__init__(a) #无参数调用super() D(8) C 8 __main__.D object at 0x00D7ED90 14)新的metaclass语法: class Foo(*bases, **kwds): ? ?? ?pass 15)支持class decorator。用法与函数decorator一样: def foo(cls_a): ? ?? ?def print_func(self): ? ?? ?? ?? ? print(Hello, world!) ? ?? ?cls_a.print = print_func ? ?? ?return cls_a @foo class C(object): ?

文档评论(0)

Seiryu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档