免責事項これは単なるメタプログラミングの演習であり、実用的な目的はありません。
__getitem__
関数オブジェクトにandメソッドを割り当てまし__getattr__
たが、効果がありません...
def foo():
print "foo!"
foo.__getitem__ = lambda name: name
foo.__getattr__ = lambda name: name
foo.baz = 'baz'
プロパティを関数に割り当てることができることを確認します。
>>> foo.baz
'baz'
きちんとした。「魔法のゲッターズ」はどうですか?
>>> foo.bar
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'function' object has no attribute 'bar'
>>> foo['foo']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'function' object is not subscriptable
>>> getattr(foo, 'bar')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'function' object has no attribute 'bar'
関数オブジェクトに「魔法のゲッター」を持たせることは可能ですか?