クラス名のリストを文字列として持っています。print(cNames[0])それはFoo以来になり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。<class 'testing.Foo'>(文字列ではなく、クラス自体を) 文字列 "Foo" に変換するにはどうすればよいですか?