设为首页 加入收藏

TOP

Python 3.x 新特性(二)
2014-11-24 01:20:01 来源: 作者: 【 】 浏览:6
Tags:Python 3.x 特性
'
06.比较


Python3对于值的比较要严格得多。在Python2中,任意两个对象均可进行比较,例如:




所有 = all
class 男人:
@classmethod
def 包括(cls,ta):
return isinstance(ta,cls)
def 一起玩(人们):
if 所有(男人.包括(ta) for ta in 人们):
print ("他们是基友")
else:
print ("他们是朋友")
汤姆 = 男人()
杰瑞 = 男人()



一起玩([汤姆,杰瑞])


>>>
他们是基友
08.异常处理


* 异常类必须继承自BaseException,它是异常结构的基类。
* 移除了StandardError
* 抛出异常:使用raise Exception(args)而不是原来的raise Exception, args
* 捕获异常: 使用except Exception as identifier而不是原来的except Exception, identifier
* 异常链(Exception chain)。
* 改良了一些windows不能加载模式时的异常信息,具有本地化处理。



例子1: Python 3中的异常处理



# 绑定ValueError到本地的ex
try:
x = float('blah')
except ValueError as ex:
print("value exception occurred ", ex)

# 同时捕获两个不用的异常
try:
x = float('blah')
except (ValueError, NameError):
print("caught both types of exceptions")例子2: Python 3中的隐式异常链



def divide(a, b): try: print(a/b) except Exception as exc: def log(exc): fid = open('logfile.txt') # missing 'w' print(exc, file=fid) fid.close() log(exc)divide(1,0)
09.字典dict


Python 3.0 内的另一个重大改变是字典内dict.iterkeys(),dict.itervalues(),dict.iteritems()方法的删除。取而代之的是:dict.keys(),dict.values(),dict.items(),它们被进行了修补,可以返回轻量的、类似于集的容器对象,而不是键和值的列表。这样的好处是在不进行键和条目复制的情况下,就能在其上执行set操作。dict.has_key()同样被移除。



>>> d = {1:"Food",2:"Book"}
>>> d.keys(), d.values(),d.items()
>>> for values in d.items():
print (values)
(1, 'Food')
(2, 'Book')
>>> keys = list(d.items())
>>> print (keys)
[(1, 'Food'), (2, 'Book')]
Old: >>> d.has_key(1)
True
New: >>> 1 in d #新版本判断key是否在字典里面
True
10.其他改变



* 移除了backticks(使用repr()代替)
* 移除了<>(不等号,使用!=代替)
* as和with 变成了关键字
* True,False和None变成了关键字
* 移除了__getslice__,语法a[i:j]被解释成a.__getitem__(slice(i,j))
* nonlocal声明。使用nonlocal可以声明一个外部变量(不是global变量)
* xrange()改名为range(),range()现在不是产生一个列表(list),而是一个迭代器。
* next()重命名为__next__(),新的内建函数next()可以调用一个对象的__next__()方法。
* 八进制字,二进制和bin()函数。应该写0o666而不是0666,oct()函数也做了响应的改动。同样,0b1010等价于10,bin(10)返回”0b1010″。



>>>0o13 #八进制转十进制
11
>>>0b010101 #八进制转二进制
21


推荐阅读:


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Python 小程序,实现比较两个列表.. 下一篇Java字符生成器简单例子

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: