首页 > 代码库 > [python学习篇][书籍学习][python standrad library][内建函数]之[all,any,basestring,isinstance,bin,bool,@classmethod,@staticmethod,cmp,enumerate

[python学习篇][书籍学习][python standrad library][内建函数]之[all,any,basestring,isinstance,bin,bool,@classmethod,@staticmethod,cmp,enumerate

Python 解释器内置了一些函数,它们总是可用的。这里将它们按字母表顺序列出。

  Built-in Functions  
abs() divmod() input() open() staticmethod()
all() enumerate() int() ord() str()
any() eval() isinstance() pow() sum()
basestring() execfile() issubclass() print() super()
bin() file() iter() property() tuple()
bool() filter() len() range() type()
bytearray() float() list() raw_input() unichr()
callable() format() locals() reduce() unicode()
chr() frozenset() long() reload() vars()
classmethod() getattr() map() repr() xrange()
cmp() globals() max() reversed() zip()
compile() hasattr() memoryview() round() __import__()
complex() hash() min() set() apply()
delattr() help() next() setattr() buffer()
dict() hex() object() slice() coerce()
dir() id() oct() sorted() intern()

 

all(iterable)

如果iterable的所有元素为真(或者iterable为空), 返回True

如果iterable的所有元素为真(或者iterable为空), 返回True等同于:

def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True
>>> help(all)
Help on built-in function all in module __builtin__:

all(...)
    all(iterable) -> bool
    
    Return True if bool(x) is True for all values x in the iterable.
    If the iterable is empty, return True.

>>> listMy = [abc,abd]
>>> all(listMy)
True
>>> listMy.append(False)
>>> all(listMy)
False

any(iterable)

如果iterable的任一元素为真,返回True如果iterable为空,返回False

>>> listMy = [abc,abd]
>>> any(listMy)
True
>>> listMy.append(False)
>>> any(listMy)
True

basestring()  用来测试一个对象是否为字符串或者u字符串

这个抽象类型是strunicode的超类。 它不能被调用或者实例化,但是可以用来测试一个对象是否是str或者unicode的实例。 isinstance(obj, basestring)等同于isinstance(obj, (str, unicode))

>>> isinstance(listMy, basestring)
False
>>> isintance(abc, basestring)

Traceback (most recent call last):
  File "<pyshell#24>", line 1, in <module>
    isintance(abc, basestring)
NameError: name isintance is not defined
>>> isinstance(abc, basestring)
True
>>> isinstance(u"准哦功能", basestring)
True
>>> isinstance(123, basestring)
False

bin(x),

将一个整数转化成一个二进制字符串。结果是一个合法的Python表达式。如果x不是一个Python int对象,它必须定义一个返回整数的__index__()方法。

bool([x])

将一个值转化成布尔值,使用标准的真值测试例程。如果x为假或者没有参数,它返回False否则它返回Truebool也是一个类,它是int的子类。bool不能被继承。它唯一的实例就是FalseTrue

>>> bin(2)
0b10
>>> bin(4)
0b100
>>> bool(1)
True
>>> bool(2)
True

chr(i)

返回一个单字符字符串,字符的ASCII码为整数i例如,chr(97)返回字符串‘a‘。 它是ord()的逆运算。参数的取值范围为[0..255]的闭区间;如果i超出取值范围,抛出ValueError参见unichr()

>>> chr(97)
a
>>> ord(a)
97

classmethod(function)

将function包装成类方法。

类方法接受类作为隐式的第一个参数,就像实例方法接受实例作为隐式的第一个参数一样。声明一个类方法,使用这样的惯例:

class C(object):
    @classmethod
    def f(cls, arg1, arg2, ...):
        ...

@classmethod是函数decorator(装饰器)参见Function definitions中的函数定义。

它即可以通过类来调用(如C.f()),也可以通过实例来调用(如C().f())。除了实例的类,实例本身被忽略。如果在子类上调用类方法,子类对象被传递为隐式的第一个参数。

类方法不同于C++或Java中的静态方法。如果你希望静态方法,参见这节的staticmethod()

#coding=utf-8
class C(object):
    @classmethod
    def f(cls, arg1, arg2):
        print arg1,arg2

C.f(1,2)
C().f(2,3)

# 1 2
# 2 3

staticmethod(function)

返回function的一个静态方法。

静态方法不接受隐式的第一个参数(也就是实例名称self)。要声明静态方法,请使用下面的习惯方式:

class C(object):
    @staticmethod
    def f(arg1, arg2, ...):
        ...

@staticmethod形式是一个函数装饰器 – 细节请参阅函数定义中函数定义的描述。

它既可以在类上调用(例如C.f())也可以在实例上调用(例如C().f())。除了它的类型,实例其他的内容都被忽略。

#coding=utf-8
class C(object):
    @staticmethod
    def s(arg1, arg2):
        print arg1,arg2


C.s(1,2)
C().s(2,3)

# 1 2
# 2 3

cmp(x, y)

比较两个对象x和y,根据结果返回一个整数。如果y,返回负数;如果== y,返回0;如果y,返回正数。

>>> cmp(a,b)
-1
>>> cmp(1,2)
-1
>>> cmp(a,2)
1
>>> lista=[1,2]
>>> listb=[2]
>>> cmp(lista,listb)
-1
>>> cmp(1.20,1.22)
-1
>>> cmp(1.23,1.2)
1

enumerate(sequence, start=0)

返回一个枚举对象。sequence必须是序列或迭代器iterator,或者支持迭代的对象。enumerate()返回的迭代器的next()方法返回一个元组,它包含一个计数(从start开始,默认为0)和从sequence中迭代得到的值:

>>>
>>> seasons = [Spring, Summer, Fall, Winter]
>>> list(enumerate(seasons))
[(0, Spring), (1, Summer), (2, Fall), (3, Winter)]
>>> list(enumerate(seasons, start=1))
[(1, Spring), (2, Summer), (3, Fall), (4, Winter)]
等同于:

def enumerate(sequence, start=0):
    n = start
    for elem in sequence:
        yield n, elem
        n += 1

 

isinstance(object, classinfo)

如果参数object 是参数classinfo 的一个实例;或者是其一个(直接的、间接的或者virtual)子类的实例,返回真。如果classinfo是类型对象(新式类)而object是该类型对象;或者是其子类(直接的,间接的,或者virtual),返回真。如果object不是给定类型的类实例或者对象,该函数总是返回假。如果classinfo既不是类对象,也不是类型对象,它可以是类/类型对象的元组,或者递归包含这样的元组(不接受其它的序列类型)。如果classinfo不是类,类型,类/类型的元组,抛出TypeError异常。

issubclass(class, classinfo)

如果class是classinfo的子类(直接的,间接的,或者virtual) ,返回真。一个类被认为是它自己的子类。classinfo可以是类对象的元组,这时classinfo中的每个类对象都会被检查。其它情况下,抛出TypeError异常。

 

[python学习篇][书籍学习][python standrad library][内建函数]之[all,any,basestring,isinstance,bin,bool,@classmethod,@staticmethod,cmp,enumerate