python的code函数_python中的__code__

简单总结几个常用的__code__的用法:

(1)func.__code__.co_argcount:返回函数的参数个数,这里的参数个数不包含*args与**kwargs,具体来讲就是*args前的参数。

>>> def a(a,b,c,d=2,e=3,*arg,f,g=8,**kwargs):print(a,b,c,d,arg,f,g,kwargs)

>>> a.__code__.co_argcount5

这里的5个就是a,b,c,d,e

(2)func.__code__.co_kwonlyargcount:返回函数强制关键字参数个数,也就是*args后面的参数个数,这里参数个数也不包含*args和**kwargs。

>>> a.__code__.co_kwonlyargcount2

这里两个就是f,g。

(3)func.__code__.co_cellvars和func.__code__.co_freevars是对闭包函数而言的。

func.__code__.co_cellvars:返回外部函数中被内嵌函数调用的参数,这里注意,一定是被调用的。

func.__code__.co_freevars:返回内部函数中引用外部函数参数。

>>> deff(a,b):

c=2

defg():

e=creturn g

>>> print(f.__code__.co_consts[2].co_freevars)

('c',)

这里co_consts是外部函数f的常量有2,和g。

>>> print(f.__code__.co_cellvars)

('c',)

4.__code__.co_varnames:将函数局部变量以元组的形式返回。

>>> f.__code__.co_varnames

('a', 'b', 'g')

>>> def test(a,b,c,d=1,e=2,*args,f=3,g,h=4,**kwargs):print(a,b,c,d,e,f,g,h,args,kwargs)

>>> test.__code__.co_varnames

('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'args', 'kwargs')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值