Python函数的特殊属性

Python 的函数特殊属性

__doc__

用于获取函数的文档说明,如果没有,则返回None。

__name__

获取函数的名称
例如:

In [72]: def demo(a:3,b:'str') -> int:
    ...:     return a
In [77]: demo.__name__
Out[77]: 'demo'
__qualname__

获取函数的qualname,点示法显示函数名称、所在的类、模块等梯级地址。

__module__

返回函数所在的模块,如果无则返回None。

__defaults__

函数的默认参数是保存在 defaults 中的。以元组的形式返回函数的默认参数,如果无默认参数则返回None。
例如{} 不能作为默认参数的问题。如果是可变类型,则在函数体内对其修改会导致默认参数值发生变化。

In [86]: def func(d={}):
    ...:     d[1]='test'
    ...:     return d
    ...:

In [87]: func.__defaults__
Out[87]: ({},)

In [88]: func()
Out[88]: {1: 'test'}

In [89]: func.__defaults__
Out[89]: ({1: 'test'},)
__code__

返回已编译的函数对象。

__globals __

以字典的形式返回函数所在的全局命名空间所定义的全局变量。

__dict__

以字典的形式返回命名空间所支持的任意自定义的函数属性。

__closure__

以包含cell的元组形式返回闭包所包含的自由变量。

__annotations __

python3.x引入了函数注释,增强函数的注释功能。可以使用:对参数逐个注释,注释内容可以是任何形式,比如参数的类型,作用,取值范围等等,返回值使用->标注,所有的注释都会保存至函数的属性(__annotations__)中,可以通过函数的特殊属性__annotations__获取,结果会以字典的形式返回。这些函数注释不影响默认参数的使用。

# 例如刚刚定义的demo函数,就加上了注释。
In [74]: demo.__annotations__
Out[74]: {'a': 3, 'b': 'str', 'return': int}
__kwdefaults__

强制关键字参数
在正常的函数参数中存在一个"*",在该符号之后的所有参数(可以是一个,多个)均被称为强制关键字参数。必须通过关键字参数的形式传递该参数,例如(age=2)。如下面一个例子

关于这些属性的官网汇总如下:
在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值