我有一个作为字符串的类名列表,如果我说 fe. print(cNames[0])
它会导致进入Foo
since cNames[0] = "Foo"
。现在,如果我想将类字符串与类进行比较,我会这样做:
if eval(cNames[0]) in classes:
foo = eval(cNames[0])()
但是,它给了我无效的语法错误:
File ".\testing.py", line 54, in convert
print("Class: %s" %eval(cNames[0]))
File "<string>", line 1
<class 'testing.Foo'>
^
SyntaxError: invalid syntax
而且我知道我只是在打印类名,但它也不适用于 if 语句,所以我尝试用打印来完成。没有效果
编辑:
所以问题似乎是我打电话eval("<class 'testing.Foo'>")
而不是eval("Foo")
. 现在这会导致一些问题,我正在使用 sqlite3 数据库,我正在尝试保存一个字符串,如下所示:<class>:i
例如Foo:53
,但我正在做<class 'testing.Foo'>:53
,这就是为什么调用 eval 不起作用。我怎么能把<class 'testing.Foo'>
(不是字符串,类本身)变成字符串“Foo”?