python 函数内省

python中函数也是对象, 除了 __doc__函数对象还有很多属性。使用 dir 函数可以探知 factorial 具有下述属性:
在这里插入图片描述
其中大多数属性是 Python 对象共有的。本节讨论与把函数视作对象相关的几个属性,先从__dict__ 开始

与用户定义的常规类一样,函数使用 __dict__ 属性存储赋予它的用户属性。这相当于一种基本形式的注解。一般来说,为函数随意赋予属性不是很常见的做法,但是 Django 框架这么做了。参见“The Django admin site”文档(https://docs.djangoproject.com/en/1.10/ref/contrib/admin/)中对 short_descriptionbooleanallow_tags 属性的说明。这篇 Django文档中举了下述示例,把 short_description 属性赋予一个方法,Django 管理后台使用这个方法时,在记录列表中会出现指定的描述文本:
在这里插入图片描述
下面重点说明函数专有而用户定义的一般对象没有的属性。计算两个属性集合的差集便能得到函数专有属性列表
在这里插入图片描述
用户定义的函数的属性

名称类型说明
__annotations__dict参数和返回值的注解
__call__method-wrapper实现 () 运算符;即可调用对象协议
__closure__tuple函数闭包,即自由变量的绑定(通常是 None
__code__code编译成字节码的函数元数据和函数定义体
__defaults__tuple形式参数的默认值
__get__method-wrapper实现只读描述符协议
__globals__dict函数所在模块中的全局变量
__kwdefaults__dict仅限关键字形式参数的默认值
__name__str函数名称
__qualname__str函 数 的 限 定 名 称, 如 Random.choice参阅 PEP 3155https://www.python.org/dev/peps/pep-3155/
  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值