现在的位置: 首页 > 综合 > 正文

Python 中不常见builtinfunction

2013年07月04日 ⁄ 综合 ⁄ 共 926字 ⁄ 字号 评论关闭

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(functioniterable)

    顾名思义,过滤器。它等同于(item for item in iterable if function(item))。这种过滤循环在平时也是很常见的。

frozenset([iterable])

    将iterator的内容转换为set。

抱歉!评论已关闭.