查看内置函数
dir(__builtins__)
abs,绝对值
min,序列的最小值
max,序列的最大值
sum,序列的求和
bin,转为二进制
hex,转为十六进制
oct,转为八进制
chr,查看ASCII码对应的字符
ord(),查看字符对应的ASCII码
bool(),查看是否为True/False
all(["a","b","c"]) ,序列中所有为True,则为返回True
any(["","d"]),序列中有一个为True,则返回True
b = s.encode("utf-8") # 同bytes("xxx","utf-8")
bytearray(b) #转为字节数组,可变
callable,是否可调用
enumerate(list) , 枚举 -->(idx,value)
zip(list1,list2) --> 两个列表对应项目形成元组,整体返回元组列表
eval,将字符串转为原有的数据结构
alist = [1,2,3]
s = str(alist) #'[1,2,3]'
eval(s) # -->[1,2,3]
exec("执行代码字符串")
exit,退出程序
sys.exit(0) 退出程序
hasattr(obj,"attr"),obj是否具有这个属性
getattr(obj,"attr","没有"),获取属性,没有则返回后面的值
setattr(obj,"sex","male"),设置属性
delattr(obj,"attr") ,删除属性,只能删除对象的实例属性,从类属性继承过来的不能删除,同del obj.attr
locals(),局部变量字典
globals(),全局变量字典
hash, 哈希计算
id,查看对象的内存地址
type,查看对象的类型
isinstance(3,int) #是否该类的对象
isinstance(3.0,(int,float)) #满足一个就返回True
issubclass(sub,parent) #是否父类的一个子类
issubclass(sub,(parent1,parent2,...))
round(3.5567,2) #四舍五入,保留2位小数
名称空间
即存储变量名的地方
类别:
locals(),局部变量
enclosing,外部函数的作用域
globals(),全局变量
_builtins_,内置变量
闭包
在一个函数内部,还有定义的函数,内部函数的内部作用域使用外部函数的作用域变量,导致外部函数即使执行完毕也无法释放这部分变量。
def outer():
name = "闭包"
def inner():
print(name)
return inner
func = outer() #执行结束,放回一个inner函数
装饰器(闭包的应用)
为了满足开发中的==开放-封闭==原则,项目中已经实现的功能,尽量不改源码,但可以扩展功能。
不改源码的情况下,扩展函数的功能,就使用==装饰器==
def origin_func():
print("origin function")
#现在需要让以上函数打印出”扩展功能“,不改源码
def kuozhan(func):
def wrapper(*args,**kwargs):
#实现原来的功能
func(*arg,**kwargs)
#添加扩展的功能
print("扩展功能")
return wrapper
@kuozhan #装饰器即高阶函数的执行,返回wrapper
def origin_func(p):
print("origin function")
origin_func('xx') #函数执行时,即执行wrapper
#对以上origin_func再次扩展,打印'再次扩展'
def zaicikuozhan(f):
def wrapper(*args,**kwargs):
#之前的功能
f(*args,**kwargs) #解包传参
#再次扩展
print("再次扩展")
return wrapper
@zaicikuozhan
@kuozhan
def origin_func(p):
print("origin function")
origin_func("xx")
==带参数的装饰器==
def kuozhan(name,age): #这里首先接收自己的参数
print("带参数的装饰器",name,age)
def wrapper(func): #接收装饰的函数
def wrapper1(*args,**kwargs): #接收装饰的函数的参数
#实现原来的功能
func(*arg,**kwargs)
#添加扩展的功能
print("扩展功能")
return wrapper1
return wrapper #依次返回
@kuozhan("jack",23) #装饰器即高阶函数的执行,返回wrapper
def origin_func(p1,p2):
print("origin function running...")
print(p1,p2)
origin_func('xx','yy') #函数执行时,即执行wrapper
带参数的装饰器 jack 23
origin function running...
xx yy
扩展功能