eval( expression[, globals[, locals]])
该参数是一个字符串和可选的 globals和 locals。globals必须是一个字典。locals可以是任何映射对象.
>>> x = 1
>>> print eval('x+1')
2
>>> g = {'x':'a','y':'b','z':'c'}
>>> eval('x+y+z',g)
'abc'
exec(str[,globals[,locals]]):exec语句参数的含义大体与eval相同。它可以接收一组语句的字符串。执行语句。
>>> exec("print 2")
2
>>> exec("3*4")
>>> exec("for i in range(0,5): print i,")
0 1 2 3 4
compile( string, filename, kind[, flags[, dont_inherit]])
编译string为一个代码对象。代码对象能够通过exec语句执行或者通过调用eval()计算。个警告:必须以'\n'作为行结束符,同时,输入必须至少以一个'\n'作为结束。不能以'\r\n'作为行结束。
>>> s="for i in range(0,10): print i,"
>>> c = compile(s,"",'exec')
>>> exec(c)
0 1 2 3 4 5 6 7 8 9
>>> s2="3*7+6"
>>> c2=compile(s2,'','eval')
>>> eval(c2)
27
frozenset( [iterable])
类似于set()。返回一个 frozenset对象,其元素来自于 Iterable。 Frozensets组没有更新的方法,但可以作为字典键使用。一个 frozenset的元素必须是不可改变。所以相对于set,没有add,delete,pop,update等方法。内部 sets也应是 frozenset对象。
getattr( object, name[, default])
返回 object名为 name属性的值。名称必须是一个字符串。如果该字符串是对象的其中属性名字,结果是该属性的值。例如,getattr(x, 'foobar')相当于 x.foobar。如果指定的属性不存在,则返回默认提供的,否则抛出 AttributeError。
setattr( object, name,value])
参数是一个对象,一个字符串和一个任意的值。该字符串可以命名一个现有的属性,或一个新的属性。功能是分配属性的值。例如,setattr的(的x,'foobar的',123)是相当于x.foobar= 123。
hasattr( object, name)
该参数是一个对象和一个字符串。如果字符串是对象的其中一个属性,结果为 True,如果没有返回 False。(这是通过调用的 getattr(对象名称),看是否引发异常与否。)
delattr( object, name)
参数是一个对象和一个 string.string必须是对象的一个属性。函数删除 object这个名为 string的属性。例如,delattr(x, 'foobar')等价于 del x.foobar
hash( object)
返回对象(如果有的话)的哈希值。哈希值是整数。它们被用来在词典查找时,作为一个快速比较字典 keys键。具有相同的哈希值,数值相等。
id( object)
返回对象的``identity''。这是一个整数(或长整型),这是保证是唯一的,与对象的生命周期一样长。两个非重叠的生命周期的对象可能有相同的 ID值。
callable( object)
如果object参数可以调用就返回True,否则返回False。如果返回True,它仍然可能调用失败,但是如果返回False,就永远不可能调用成功。注类是可调用的(调用一个类返回一个实例)类的实例如果有一个__call__()方法就是可调用的。
issubclass(sub,tuple)
判断一个类是否是某个类的子类,tuple是父类的集合,满足其中任何一个即返回True
isinstance(object,class-or-type-or-tuple)
isinstance()测试对象类型,返回布尔型
>>> a='isinstance test'
>>> b=1234
>>> isinstance(a,str) True
>>> isinstance(a,int) False
>>> isinstance(b,str) False
>>> isinstance(b,int) True
partial(function,args)
偏函数,省略默认参数
>>> from functools import partial
>>> baseTwo = partial(int,base=2)
>>> baseTwo('10010')
18
reload(module)
重新导入一个已经导入的模块。首先,模块必须被全部导入,而且必须成功;另外,参数必须是模块本身而不是字符串。
模块中的代码在导入时被执行,但只执行一次,以后执行import时,也不会执行这些代码,只是绑定模块名称,而reload()函数可以使之执行。