說我有以下class
如何從字符串中獲取對象?
class Test:
def TestFunc(self):
print 'this is Test::TestFunc method'
現在,我創建的class Test
>>>
>>> t = Test()
>>>
>>> t
<__main__.Test instance at 0xb771b28c>
>>>
現在的情況下,t.TestFunc
如下
>>>
>>> t.TestFunc
<bound method Test.TestFunc of <__main__.Test instance at 0xb771b28c>>
>>>
現在我保存表示t.TestFunc
的Python
表示爲字符串string_func
>>>
>>> string_func = str(t.TestFunc)
>>> string_func
'<bound method Test.TestFunc of <__main__.Test instance at 0xb771b28c>>'
>>>
現在,有沒有一種方法,在那裏我可以從字符串<bound method Test.TestFunc of <__main__.Test instance at 0xb771b28c>>
得到函數句柄。例如,
>>>
>>> func = xxx(string_func)
>>> func
<bound method Test.TestFunc of <__main__.Test instance at 0xb771b28c>>
>>>
如果要將對象序列化爲字符串,請使用['pickle'](http://docs.python.org/2/library/pickle.html)。 – Bakuriu 2013-02-19 22:18:48
你可以從'globals()'或者'gc.get_objects()'或者其他東西構建一個'id'字典,然後從中得到實例,然後使用'getattr'從實例中獲取方法,但是它會非常難看。 – DSM 2013-02-19 22:20:22
這是一個重複的:http://stackoverflow.com/questions/14968349/textual-reference-of-a-method – JCash 2013-02-19 22:57:11