Python的内置方法

abs(X):返回一个数的绝对值,X可以是一个整数,长整型,或者浮点数,如果X是一个复数,此方法返回此复数的绝对值(此复数与它的共轭复数的乘积的平方根)

>>> abs(3+2j)
3.605551275463989
>>> abs(3-2j)
3.605551275463989

all(iterable):如果迭代器的所有元素都是true,或者空迭代器,则此方法返回true。等价于

def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True

any(iterable):迭代器只要有一个元素为false,或者空迭代器,则此方法返回false。

basestring():抽象类型,是str和unicode的超类,它不能被调用,也不能被实例化,但它可以用来测试一个对象是不是一个str或unicode的示例。通过如下方式:

>>> str.isinstance(obj, basestring)
>>> unicode.isinstance(obj,basestrign)
>>> isinstance(obj, (str, unicode))
bin(X):将一个整数转化为一个二进制字符串,其结果是一个有效的python表达式,如果X不是一个int对象,那么它必须定义一个返回整数的__index__方法
>>> bin(2)
'0b10'

bool(X):通过标准的真假检查程序,将一个值转化为Boolean。如果X是假的或者为空,那么返回false,否则返回true。要注意的是:bool同样是一个类,而且是int的子类,且不能再被继承,它只能被实例为true或者false。

bytearray(source[,encoding[,errors]]]): 返回一个字节数组。bytearry类型是一个有范围在0到255之间的整数组成的可改变的序列。它有绝大部分可变序列的方法。

可选参数source可以通过几个不同的方式初始化数组:

  • 如果是字符串,那么也必须给出encoding参数,那么通过str.encode()方法将字符串转化为byte
  • 如果是个整数,那么数组的大小就是这个整数,并且用null来初始化数组
  • 如果是一个符合buffer接口的对象,那么会用只读的buffer来初始化byte数组
  • 如果是一个可迭代对象,那么这个对象必须是范围由0到255之间的整数,且用来初始化byte数组。

callable(object):如果参数对象可以被调用,则返回true,反之返回false。当方法返回true,此次调用仍然可能会失败,如果返回false,那么调用一定失败。要注意的是,类是可以被调用的(返回一个新的实例),如果类实例有__call__方法,那么这个类实例也可以调用。

chr(i):返回一个ASCII码是整数i的字母的字符串。i的取值范围是[0,255],如果在这个范围之外,方法为抛出valueError

>>> chr(97)
'a'
>>> chr(970)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: chr() arg not in range(256)

classmethod(Function): 针对方法返回一个类构造方法。一个类方法隐式的将这个类作为第一个参数,就是实例方法接受实例一样,声明一个类方法,可以如下:

class C(object):
    @classmethod
    def f(cls, arg1, arg2, ...):
        ...
@classmethod的形式是一个方法装饰器。这个装饰器,既可以通过类上调用,如c.f(),也可以通过实例调用,如c().f()。除非是自身类,否则实例将会被忽略。如果是一个继承类,调用类方法,那么继承对象会被传递作为第一个参数。 类方法与C++/Java的静态类不同。

cmp(x,y):比较对象x和y,根据比较结果返回一个整数。如果x<y,返回一个负数,如果x==y,则返回0,否则,返回一个整数。

compile(source, filename, mode[, flags[, dont_inherit]]):编译源使得成为代码或者抽象语法树(AST)对象。代码对象能够通过exec语句执行,或者被eval()方法计算。源可以是uncode字符串,也可以是Latin-1编码的字符串或者是抽象语法树对象。

filename参数应该给定读取代码的文件,如果不是从一个文件读取,需要传递一些可识别的值,一般常用'<string>'

mode参数指定那种代码被编译。如果源有序列语句组成,那么可以被执行'exec',如果有单个语句组成,可以被计算'eval',如果由单个交互语句组成,可以被'single'(后一种情况下,用来计算的除了None的描述语句会被打印出来。

可选的参数flags和dont_inherit控制后来语句是否影响源的编译。

complex([real[, imag]]):创建一个值为real+image*j,或者将一个字符串/数字转换为复数。如果第一个参数是一个字符串,那么第二个参数必须为空,且此方法将字符串转化为复数。第二个参数一定不能是字符串。每一个参数都可以是数值类型(包括复数),如果image为空,默认为0,这个方法如同int(),float()等方法对数值进行转换。如果两个参数都为空,那么返回0j。

值得注意的是,如果我们想转换字符串,那么字符串的‘+’或者‘-‘之间一定不能有空格,如下。

>>> complex('1+2j')
(1+2j)
>>> complex('1 + 2j')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: complex() arg is a malformed string

delattr(object,name): 这个方法相对于setattr()。参数是一个对象和一个字符串,字符串必须是对象的某个属性的名字,这个方法则使得对象删除此属性。如delattr(x,'foobar')等价于del x.foobar。

dict(**kwarg)

dict(mapping,**kwarg):

dict(iterable,**kwarg): 返回一个新的字典。

divmod(a,b):将两个非复数的数作为参数,返回由作除法的结果的商和余数组成的数对。对于整型和长整型,结果为(a//b, a%b),对于浮点型,结果为(q, a%b),这里q一般来说是math.floor(a/b),但是也可能比这个值小1。尽管如此,q*b+a%b都是非常接近a。如果a%b非0,那么它的符号与b相同,且0<=abs(a%b)<=abs(b)

>>> divmod(10,3)
(3, 1)

enumerate(sequence,start=0):返回一个枚举对象,这里参数sequence必须是一个序列,或者iterator,或者其它支持迭代的对象。由此方法得到的迭代器的next()方法返回一个元组,且此元组由顺序(默认起始顺序为0)和迭代此序列得到的值组成。

>>> 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')]
hex(X):将一个整型转换为十六进制的字符串表示,结果是一个有效Python表达式

oct(X):将一个整型转换为八进制的字符串表示,结果是一个有效Python表达式

hash(X):返回一个对象(如果它又hash值的话)的hash值。经常用来在字典进行寻址的时候,快速的比较字典的key。值相同的数值类型有相同的hash值。即便是类型不同的情况下。

>>> hash(1)
1
>>> hash(1.0)
1

id(Object):返回对象的身份。这个值是一个整数或者长整数,在这个对象的生命周期内确定唯一并且为常数。两个生命周期不重叠的对象有可能有相同的id()值。

object():返回一个无特征的新的对象。object是所有新型类的基类,对于新型类的所有实例,有相同的方法。

max(iterable[,key])

max(arg1,arg2,*arg[,key]):返回一个迭代对象或者是两个(甚至多个)参数中的最大值。如果传入一个位置参数,那么可迭代对象必须为非空。如果传入两个或更多位置参数,返回位置参数的最大值。可选的参数- key,指定一个参数用来list.sort()的排序方法。如果传入key参数,那么一定要是关键字的形式。如max(a,b,c,key=func)。

len(S):返回对象的长度,参数可能是序列(字符串,列表,元组)或者映射(字典)

list([iterable]):返回一个列表,且列表的元素及其顺序与可迭代元素相同。可迭代对象可能是一个序列,或是支持迭代的容器,或者就是一个迭代对象,如果可迭代对象已经是一个列表,那么返回它的一个拷贝,如果没有给定参数,返回一个空的列表。注意,列表是一个可改变的序列类型。

locals():更新且返回一个字典表示形式的本地参数列表。在方法块而不是类块里调用locals()返回自由变量。要注意的是:返回的字典不要修改,否则可能会影响解释器的局部变量和自由变量。

map(function,iterable,...):对可迭代对象的每个元素应用方法,并且将其结果作为一个列表返回。如果传递了额外的可迭代对象,那么方法必须能够接受多个参数,同时应用于所有可迭代对象的元素,如果一个可迭代对象比另一可迭代对象元素少,那么却是的元素视为None,如果方法为None,那么视为身份方法id()。如果有多个参数,map()方法返回一个有元组组成的列表,且元组由所有可迭代对象的对应元素组成。可迭代对象参数可能是一个序列,也可能是一个迭代对象,结果总是返回一个列表。

dir([object]):方法没有参数是,返回当前局部范围内的命名的列表;有参数时,返回对象有效属性组成的列表。如果对象有方法__dir__()(这个方法必须返回属性列表),那么此方法就会调用这个对象的__dict__()方法。允许对象实现__getattr__()或者__getattribute__()方法,自定义返回自己的属性。

如果对象不提供__dict__()方法,那么dir([object])方法会尝试根据对象的__dict__属性中收集信息,如果提供__dict__()方法,则更类型对象中收集信息。方法返回的结果列表不一定完整。在对象实现了__getattr__()方法时,这个结果不一定准确。

对于不同对象,默认的dir()机制表现的也不相同,它总是视图产生最相关的,而不是最完整的信息;

  • 如果对象是一个模块对象,那么列表包含模块属性的名字
  • 如果对象是一个类对象,列表包含属性的名字,且包含其基类的属性的名字,以及基类的基类的属性的名字,如此往复。
  • 除此之外,列表包含对象属性的名字,类属性的名字,以及类的基类(基类的基类)的属性的名字,如此往复。
>>> import struct
>>> dir()   # show the names in the module namespace
['__builtins__', '__doc__', '__name__', 'struct']
>>> dir(struct)   # show the names in the struct module
['Struct', '__builtins__', '__doc__', '__file__', '__name__',
 '__package__', '_clearcache', 'calcsize', 'error', 'pack', 'pack_into',
 'unpack', 'unpack_from']
>>> class Shape(object):
        def __dir__(self):
            return ['area', 'perimeter', 'location']
>>> s = Shape()
>>> dir(s)
['area', 'perimeter', 'location']

file(name[,mode[,buffering]]):file类型的构造函数。构造器的参数与open()方法相同。当打开一个文件,使用open()方法比file()方法更佳,后者更多用来测试。

float(X):将一个字符或者数字转换为浮点型。如果参数是字符串,它必须包含一个正的十进制数或者一个浮点数,可能包含空格。参数也可能是 +|-Nan,或者+|-inf(无穷大)。初次之外,参数也可能是个整数,长整型,或者浮点数,那么会返回一个与之相同的值。

如果没有参数,返回0.0。

format(value[,format_spec]):将一个值通过format_spec决定的转换为格式化的表现形式。format_spec的解释取决于value参数的类型。尽管如此,对于绝大多数内置类型,有一个标准的转换语法:Format Specification Mini-Language

frozenset([iterable]):返回一个新的frozenset对象。iterabe提供可选参数。frozenset是一个内置类。

gatattr(object,name[,default]):返回一个对象的属性的名字。name必须是一个字符串,如果该字符串是对象的某个属性,那么结果就是此属性的值。如果不存在以这个为名字的属性,如果有default参数,则返回,否则抛出AttributeError。

globals():返回一个字典表示形式的全局参数列表。这总是当前模块的字典。(模块总是在函数或者方法里定义的,而不是从函数和方法中调用的。)

hasattr(object,name):参数是一个对象和字符串。如果字符串是对象某个属性的名字,则返回true,否则返回fasle。(这个方法通过调用getattr(object,name)方法,观测结果是否回抛出异常来实现。)

help([object]):调用内置帮助系统(这个方法是用来作交互使用),如果不给定参数,那么交互帮助系统会打开解释器控制台,如果参数是一个字符串,那么字符串会被确定是否是一个模块,类,方法,函数,关键字,主题文档的名字,然后控制台会打印对应的帮助页面。如果参数是一个对象,那么会得到对象的帮助页面。

这个方法通过site模块增加到内置命名空间。

issubclass(class, classinfo):如果class是classinfo的(直接的,间接的,虚拟的)子类,那么返回true。这里classinfo可能是包含类的元组,那么元组里的每个类都会被检查,其他情况下,会抛出TypeError。

vars([object]):返回一个模块,类,实例,或者任意有__dict__属性的对象的__dict__属性。诸如模块,和实例之类的对象,有可更新的__dict__属性。但是一些对象的__dict__属性的写限制的(如通过 dictproxy阻止直接字典更新的新型类)。

如果不指定参数,那么vars()方法的结果如locals()方法。但是值得注意的是,locals()方法返回的局部字典只是用来读的,更新操作会被忽略掉。

unichr(i)返回一个unicode码是整数i的字母的unicode字符串。对于unicode字符串来说,这个方法与ord()方法是互逆的,参数的取值范围取决于python任何编译,如果是USC2编译,那么取值范围为[0, 0xFFFF],如果是USC4编译,那么取值范围是[0, 0x10FFFF],超出相应的范围则报ValueError.

memoryview(obj):根据给定参数返回“内存视角”的对象

min(iterable[,key])

min(arg1,arg2,*arg[,key]):返回一个迭代对象或者是两个(甚至多个)参数中的最小值。如果传入一个位置参数,那么可迭代对象必须为非空。如果传入两个或更多位置参数,返回位置参数的最大值。可选的参数- key,指定一个参数用来list.sort()的排序方法。如果传入key参数,那么一定要是关键字的形式。如max(a,b,c,key=func)。

next(iterator[,default]):返回可迭代对象的下一个元素,如果给定defalut值,那么在可迭代对象迭代结束后返回该值,否则抛出StopIteration。


你可能感兴趣的:(python)