前言
python实现一些功能特别方便,一般用于快速生成程序的原型,后期可以使用更加适合的语言编写。跟紧时代的脚步,不断学习,以下是看官方文档中的内置函数介绍的学习记录。虽然不是很详细,先记住有哪些函数,等真正需要的可以再详细查询。
本想把一些常用的函数放到前面来,后来仔细一想,如果您是来查找使用方法,可以直接CTRL+F
直接定位函数;学习的话还是全部了解下python
内置的函数好些,这样更有提高!
python内置函数
abs(x): 返回x的绝对值。
**all(iterable) **: 如果iterable中的所有元素都是真(非空、非零)则返回true,否则返回false; 注意:如果iterable为空则返回True。
any(object):如果iterable中的所有元素都是真(非空、非零)则返回true,否则返回false, 注意:如果iterable为空则返回False。
all()
和any()
的比较可以从其函数定义中看出 :
ascii(object): 类似2.0版本的repr()
函数,返回一个可打印的字符串对象,当遇到非ASCII码时,就会输出\x,\u或\U等字符串表示。
class bool([x]):返回一个bool值, bool类是int类的子类,使用了[] ,表示参数可以缺省,缺省则返回false。
**class bytearray([source[, encoding[, errors]]]) **: 返回一个新的bytes对象,该对象是一个可变的序列整数,其取值范围在0<= x < 256 。不同的source对应不同的操作
● 如果source是一个string,则必须提供encoding参数,bytearray()
则将使用str.encode()将string转为byte。
● 如果这是一个整数,则会生成一个相同大小且初始化为null bytes的数组。
● 如果是一个符合缓冲区接口的对象,一个只读的buffer将会用户初始化bytes数组
● 如果是一个可迭代类型,且必须是在0<= x < 256的整数才能用于初始化该对象。
class bytes([source[, encoding[, errors]]]):返回一个新的 bytes 对象,该对象是一个不可变的序列整数,其取值范围在0<= x < 256 。bytes
是bytearray
的不可变版本,它们有相同的不可变方法、相同下标和切片行为。
callable(object) :如果object是可调用(拥有__call()__
函数)的则返回True,否则返回False。返回True该对象仍然可能调用失败,如果返回False则一定调用失败。 注:callable(object)
在3.0版本被移除,但3.2版本增加回来了。
**chr(i) **:返回Unicode字符串,通常0 <= i <= 0x10ffff 。
classmethod(function) :一个将类作为隐式的第一个参数的类方法,就像一个可以接受实例的实例方法。
class C:
@classmethod
def f(cls, arg1, arg2, ...):
有了@classmethod
可以直接使用C.f()、C().f()调用,否则只能使用C().f()调用。 注:C()相当于生成一个C的实例,直接使用C.f()没有生成实例,且和C++、java中的静态方法(对应在python中的是@staticmethod
)有区别:@ckassmethod
可以传入子类,而@staticmethod
没有传入当前类,所有不能用于子类的调用。
compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1): 将sorce编译成为一个代码或AST(Abstract Syntax Trees)对象。生成的代码对象可以被exec()或eval()函数执行,
● source:--字符串、byte string、或一个AST对象。
● filename: 读取code的文件,如果没有为空则不读取。
● mode:指定编译的模式。exec:如一个序列语句;eval:一个单独的表达式;single:单一交互语句。
● flags、dont_inherit:控制一些影响编译源码的标志。
● optimize:指定编译器优化级别。
class complex([real[, imag]]):返回一个值为real+image*j的复数或将一个string或number转换为一个复数。
delattr(object, name):与setattr()
函数相反,删除类的属性。
dir([object]):如果没有参数,返回当前局部范围内的所有名字(变量、方法、定义的类型列表);如果带参数,返回该对象有效属性的列表。
divmod(a, b):传入两个非复数的数字,返回一个整除的结果和一个求余的结果。
enumerate(iterable, start=0):返回一个枚举对象,iterable必须是一个支持迭代的对象,用于生成数据和数据生成的下标。看官网解释即可理解:
eval(expression, globals=None, locals=None):用于执行一个字符串表达式。expression是字符串,globals必须是一个字典,locals必须是一个map对象。globals和local表示全局和局部命名空间。如果globals是字典且缺少__builtins__
,则globals将会在表达式解析前拷贝到全局变量中。
exec(object[, globals[, locals]]): 支持动态执行python代码,object必须是字符串或一个代码对象。如果object是一个字符串,则字符串会被解析为一组Python语句,不管是否在传递给exec()函数的上下文中,return和yield语句可能不会被作用函数的外部。globals、locals和eval中的类似。
filter(function, iterable):用于过滤可迭代的序列,只返回当function为真的刷选后的序列。
class float([x]):返回一个float数字,X可以使一个受罪或字符串,字符串中可以有正负号、换行符、科学计数法、Infinity。
format(value[, format_spec]):用于将值格式化。
class frozenset([iterable]):返回一个冻结的对象,冻结对象的元素是从可迭代中获取的,冻结对象不能再添加或删除任何元素。
globals():返回一个代表中当前全局符号表的字典。
hasattr(object, name): 测试该object是否有name属性,有返回true,否则返回false。
hash(object):返回一个该object的整数哈希值。
help([object]):python的帮助函数。
hex(x):将整数值x转换为小写的十六进制代码。
id(object):返回在生命周期中标识该object整数值,尽管两个对象可能会有相同的id值。
input([prompt]):获取输入;
class int(x, base=10):返回int值,x可以是整数或字符串,base标识进制:2,8,10,16。
isinstance(object, classinfo):判断object是否是classinfo类型,object可以是classinfo的子类也会返回true。
issubclass(class, classinfo):判断class是否是classinfo的子类。
len(s):返回s的长度。
class list([iterable]):将iterable转换为可变的list。
locals():更新和返回当前局部变量表的字典值。
map(function, iterable, ...)将iterable中的每个元素都使用function来进行操作。其实就是mapreduce
中的map操作。
*max(iterable, [, key, default])
*max(arg1, arg2, args[, key]):返回参数中的最大值。
memoryview(obj):返回由obj创建的内存视图对象。
next(iterator[, default]):返回可迭代对象的下一个项目,同时调用next()方法实现。
class object:返回一个没有特征的新对象。
oct(x):将一个整数转换为8进制字符串。
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None):打开文件并返回一个文件对象。
● file:相对路径或绝对路径的文件名。
● mode:打开文件的模式,可以是多个方式结合如:'w+b'等。
● buffering:: 如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
● encodeing:用户对文件的读写的编码格式。
● errors :用户出来再编解码时出现错误是的处理方式,errors的取值有:
errors取值 | 含义 |
---|---|
'strict' | 如果存在编码错误,则引发ValueError异常。默认值“无”具有相同的效果 |
'ignore' | 忽略错误,可能会导致数据丢失。 |
'replace' | 使用替换笔记插入到格式不正确的数据中。 |
'surrogateescape' | 将任何错误的字节使用Unicode私有使用区域中的代码点进行替换,范围是U + DC80到U + DCFF。当编写数据时使用代理错误程序时,这些私有代码点将被转回相同的字节,这对处理未知编码的文件非常有用。 |
'xmlcharrefreplace' | 仅仅用于写入文件,编码不支持的字符将被替换成相应的xml字符。 |
'backslashreplace' | 通过Python的反斜杠转义序列替换格式不正确的数据。 |
'namereplace' | (仅在写入时支持)用\ N {...}转义序列替换不受支持的字符。 |
'replace' | 使用替换笔记插入到格式不正确的数据中。 |
● closefd:如果closed为False并且提供了文件描述符而不是文件名,那么当文件被关闭时文件描述符将保持打开状态。如果给定文件名,则closed必须为True(默认值),否则将会引发错误。
● opener:通过传递一个可打开的opener来定义的opener。然后通过使用(file,flags)调用opener获取文件对象的底层文件描述符。opener必须返回一个打开的文件描述符(通过os.open
作为opener结果的功能类似于传递无)。
ord(c):给定一个字符串,返回其ascii码代表的数字。和chr()函数相反。
pow(x, y[, z]):返回x的y次幂,如果给定z,则返回pow(x,y) % z ,pow(x,y)相当于幂操作符: x**y。
print(objects, sep=' ', end='\n', file=sys.stdout, flush=False)*:打印对象到文本流文件中,使用sep来分割,使用end来作为结尾。
class property(fget=None, fset=None, fdel=None, doc=None):可以使类更简单第对属性进行操作。将某个属性设置为property函数的返回值后,可以使用该属性调用设置的函数。看图大家就知道怎么用了:
如果没有设置property函数则不能直接对属性进行操作:
range(stop)
range(start, stop[, step]):生成一个不可变的序列类型---list、tuple、range。 可用于生成list、tuple。 list(range(stop)、tupe(range(stop))。
repr(object):返回一个可打印表示的字符串。通常用于返回一个字符串使其能传递给eval()函数。
reversed(seq):返回一个反向迭代器。seq必须是一个拥有__reversed__()
方法或支持序列协议(__len()__
方法和拥有从0开始的__getitem__()
方法)
round(number[, ndigits]):返回浮点数number四舍五入的值,其中ndigit
class set([iterable]):返回一个新的set对象,该对象的值是从iterable中选取的。
setattr(object, name, value):是getattr()
函数的对应,为object设置属性name的值为value,其中name可以是已经存在的或一个新的值。例如:setattr(x, 'foobar', 123) 相当于 x.foobar = 123.
class slice(stop)
class slice(start, stop[, step]):返回一个切片对象,该切片对象可用于range、list、tuple。
sorted(iterable[, key][, reverse]):对iterable进行排序,key是一个参数函数或lambda
表达式从每个元素中提取出来的用于比较的值例如:key=lambda e: e[2],使用第三个元素进行排序,reverse=True表示反序。
staticmethod(function):返回一个静态方法,静态方法和C++、java中的静态方法类似。可以直接使用C.f(),普通方法只能通过C().f()来调用。
class str(object='')
class str(object=b'', encoding='utf-8', errors='strict'):返回对象object的字符串版本。
sum(iterable[, start]):从start开始从左到右依次累加,返回累加的结果。start默认值是0.
super([type[, object-or-type]]):在python中引入super()
的目的是保证相同的基类只初始化一次,尤其在多重继承的时候,可以确保公共父类只执行依次。使用super(Class,self)实际上是调用了super类的初始化函数,产生一个super对象。super(Class, self).func的调用并不是用于调用当前类的父类的func函数;
tuple([iterable]):返回一个不可变的tuple对象,起元素值从iterable中选取。类似 list()。
class type(object):返回object的类型,相当于调用object.__class__
。 当测试一个对象的类型时,推荐使用isinstance()
,因为,isinstance()
包含了检测子类。
class type(name, bases, dict):返回一个动态类型对象。name是类名,且成为了__name__
属性的值,bases列命了其父类,且成为了__bases__
属性的值,dict字典是类的命名空间且拷贝到了__dict__
属性。 相当远创建了动态对象。
vars([object]):返回object的__dict__
属性。
zip(iterables)*:做一个迭代器来聚合每个迭代的元素。
import(name, globals=None, locals=None, fromlist=(), level=0):用于从配置文件中动态第加载模块,且一般配置项通常为字符串类型,使用
__import__
加载能完成该任务。 __import__
可以适用于延迟化模块的导入,先加载必须的一些函数,等程序动态运行到某个模块时再动态加载函数,提高用户体验。● name (required): 被加载 module 的名称
● globals (optional): 包含全局变量的字典,该选项很少使用,采用默认值 global()
● locals (optional): 包含局部变量的字典,内部标准实现未用到该变量,采用默认值 local()
● fromlist (Optional): 被导入的 submodule 名称
● level (Optional): 导入路径选项,默认为 -1,表示同时支持 absolute import 和 relative import
事实上,import 本质上是调用
__import__
加载 module 的,比如:总结
以上函数是python的内置函数,九风是根据python的官方文档学习后简单记录的,写的不详细或有误的地方恳请大家指出。
本文旨在熟悉有那些内置函数,具体使用时候如果还不了解有那些细节,可以使用内置函数help([object])
或查阅官方文档来查看详细使用方式或者查看官方文档。