property([fget[, fset[, fdel[, doc]]]])
调用此函数会返回一个对象,每次你__get__, __set__, __delete__, __doc__此对象时,都会调用fget, fset, fdel和doc。这是数据装饰器(discriptor)的一种方便的实现方法。当然你也可以子类化某个类型,实现__get__等方法也是可以的,只是这样会麻烦很多。
classmethod(function)
默认情况下,调用类中的方法时,第一个参数是self。不过由它装饰decorator或返回的对象在调用时,第一个参数不是self,而是该类的type。
staticmethod(function)
与上面类似,只是它完全去掉了第一个参数。
(PS: classmethod和staticmethod在效果上都实现了不通过实例调用类方法,差别可能存在于使用习惯。)
all(iterable) / any(iterable)
判断iterable里所有的元素都/部分为真。它们尽管简单,但很实用。
bytearray([arg[, encoding[, errors]]]) / bytes([arg[, encoding[, errors]]])
我非常赞同Python3把char与byte分开。通过它创建一块bytes有以下几种情况
▲ 通过str对象创建,需要指定encoding。(创建bytes对象可能直接调用str.encode()方法)
▲ 给一个整数,创建一个指定size的buf。
▲ 如果某个对象支持buffer interface,则由此buffer interface来创建。(Python C编程会用到)
▲ 如果arg是一个iterator,则用此iterato创建。(注意溢出问题)
filter(function, iterable)
顾名思义,过滤器。它等同于(item for item in iterable if function(item))。这种过滤循环在平时也是很常见的。
frozenset([iterable])
将iterator的内容转换为set。