我想控制被訪問的變量。我試圖在pyjack模塊的幫助下實現它,但方法pyjack.connect(my_str,proxyfn = my_proxyfn)拋出異常...type '<type 'str'>' not supported
。在Python中是否有一種機制可以攔截對象的訪問?
這裏是我想要的一個例子:
>>> def on_access(obj):
... print 'object with id=%d has been requested' % id(obj)
...
>>> s = 'some string'
>>>
>>> foo(s, handler=on_access)
>>>
>>> print s
object with id=4559856664 has been requested
some string
>>>
>>> s + '.'
object with id=4559856664 has been requested
some string.
UPD:這是很重要的對象保留其類型。
在實例的後續:
>>> import json
>>>
>>> json.dumps(s)
object with id=4559856664 has been requested
'"some string"'
你能更好地定義什麼和不算作「訪問」? – wim
是的,我不認爲你發佈的例子使你的問題清晰。 –
看起來你只是想要一個函數包裝器。 'def s():print'access';返回'一些字符串'。 – TigerhawkT3