python的属性访问,python:如何访问函数的属性

不知道你为什么要这么做,但是。。。在

与函数fA相比,A.fA实际上是一个完全独立的对象。观察:>>> class A(object):

... def fA(self): pass

... print fA

...

>>> A.fA

如您所见,A.fA是一个“未绑定的方法”,而不是一个函数Unbound”表示它不与任何实例相关联;而绑定方法绑定到特定实例。注意:

^{pr2}$

不管怎样,方法都会包装实现它们的函数:

^{3}$

请注意,该地址与前面打印的地址相同。在

奇怪的是,我无法对你看到的行为进行反驳:>>> A.fA.__dict__['x'] = 1

>>> A.fA.x

1

也许,这种差异是由于python的不同版本造成的。这是我的:$ python

Python 2.7.2 (default, Jun 20 2012, 16:23:33)

[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>>

附言:A.fA.x似乎对我和A一样有效。fA.im_nc功能.x,这让我很惊讶。。。再说一次,我有点怀疑你为什么要这么做。通常,只有在实现__dict__时才使用__getattr__(不要与__getattribute__混淆)。在

给对象(尤其是基本类型的对象)赋予即席属性也是很少见的。另一种通常可行的方法是使用你自己的地图>>> def foo(): pass

...

>>> my_x_values = {foo: 'X'}

>>> my_x_values[foo]

'X'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值