クラス名のリストを文字列として持っています。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" に変換するにはどうすればよいですか?