Python 如何将对象字符串转换为类对象?

Python 如何将对象字符串转换为类对象?,python,python-3.x,Python,Python 3.x,目前,我正在尝试用Python编写一个程序。我正在努力使我的系统能够解码类的str: 例如: 类测试: 定义初始(自我,硬币): self.coin=硬币 印刷(测试(5)) >>> 我希望能够将字符串转换为类,然后将其分配给变量,以便: x = eval("<__main__.test object at 0x00D20B10>") print(x.coin) >>> 5 x=eval(“”) 印刷品(x.coin) >>> 5 我的错

目前,我正在尝试用Python编写一个程序。我正在努力使我的系统能够解码类的str:

例如:

类测试:
定义初始(自我,硬币):
self.coin=硬币
印刷(测试(5))
>>> 
我希望能够将字符串转换为类,然后将其分配给变量,以便:

x = eval("<__main__.test object at 0x00D20B10>")
print(x.coin)
>>> 5
x=eval(“”)
印刷品(x.coin)
>>> 5
我的错误:

Traceback (most recent call last):
    print(eval("<__main__.test object at 0x00D20B10>"))
  File "<string>", line 1
    <__main__.test object at 0x00D20B10>
    ^
SyntaxError: invalid syntax
回溯(最近一次呼叫最后一次):
打印(eval(“”)
文件“”,第1行
^
SyntaxError:无效语法
如何实现这一点?

术语“类型”和“类”的意思相同:字符串的类型是
str
;字符串是类
str
的对象

因此,您不需要将
str
“type”转换为
str
“class”:
str
已经是一个(内置)类了


注:

是Python打印类对象的标准方式。它不是表达式,因此对其应用
eval()
函数会引发异常(您的错误)

如果要打印其他内容,请在类中实现
\uu str\uu()
方法,例如

class Test:
    def __init__(self):
        pass
    
    def __str__(self):
        return "This is an object of my class Test."

print(Test())
输出:


请注意,我为您的类使用了大写的名称-请参见。

您希望
eval(“”
做什么?要使其成为类类型,如test(),您应该实现
\uuuu repr\uuuu
。如果您正在寻找序列化,您可能会感兴趣。您试图实现什么?是否要从文件加载对象?我不知道这与问题有什么关系。我想我们中的一个人误解了:-)OP仍然不能做
eval(“这是我的类测试的对象”)
所以我不知道这是如何回答这个问题的
class Test:
    def __init__(self):
        pass
    
    def __str__(self):
        return "This is an object of my class Test."

print(Test())
This is an object of my class Test.