我正在使用Python 2.5編寫一個動態熱鍵管理器類,並且遇到了麻煩,因爲nameCommands被表示爲字符串梅爾。我結束了看起來像命令:如何在Python中使用字符串創建實例的對象
<bla.Bla instance at 0x0000000028F04388>.thing = 'Dude'
我見過不少的再版和eval的話題,但我下面的測試例失敗。
class Foo:
pass
f = Foo()
f.thing = 'Jeff'
rep = repr(f)
y = eval(rep) # errors here
name = y.thing
# Error: invalid syntax
# Traceback (most recent call last):
# File "<maya console>", line 7, in <module>
# File "<string>", line 1
# <__main__.Foo instance at 0x00000000294D8188>
# ^
# SyntaxError: invalid syntax #
我假設我想要的是某種方式從字符串中獲取該實例的適當對象。 我可以將字符串格式化爲可評估的命令,如果我知道它是什麼樣子的話。 see my cgtalk post for more usage info
SO相關專題:
這一個說,這是不可能的,但用戶也想要一個用例,我希望我提供。 How to obtain an object from a string?
其他: When is the output of repr useful? How to print a class or objects of class using print()? Allowing the repr() of my class's instances to be parsed by eval() Main purpose of __repr__ in python how do you obtain the address of an instance after overriding the __str__ method in python Python repr for classes how to use 'pickle'
好的發現,謝謝分享。 – Raiyan