python 函数__dict__属性

究竟函数的__dict__是干什么用的呢?

其实它提供给函数增加属性的功能

比如还是那个简单的例子:

In [4]: def add(x,y):
   ...:     return x+y
   ...: 


显是一下这个函数的属性:

In [13]: print dir(add)
['__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__doc__', '__format__', '__get__', '__getattribute__', '__globals__', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'func_closure', 'func_code', 'func_defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name']

那么我们现在来给这个函数增加一个属性:

In [14]: def mul(x,y):
   ....:     return x*y
   ....: 

In [15]: add.__dict__['mul']=mul

我们再来看一下add的属性列表

In [16]: print dir(add)
['__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__doc__', '__format__', '__get__', '__getattribute__', '__globals__', '__hash__', 
'__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'func_closure', 'func_code', 'func_defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name', 'mul']

发现已经多了一个属性mul

而且和我们定义的函数一样是可以调用的

In [17]: add.mul(10,20)
Out[17]: 200

转载于:https://my.oschina.net/chenlei123/blog/127944

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值