[英]Get Python class object from class name string in the same module
我有一堂課
class Foo():
def some_method():
pass
和同一模塊中的另一個類:
class Bar():
def some_other_method():
class_name = "Foo"
# Can I access the class Foo above using the string "Foo"?
我希望能夠使用字符串“Foo”訪問Foo
類。
如果我在另一個模塊中,我可以使用以下方法執行此操作:
from project import foo_module
foo_class = getattr(foo_module, "Foo")
我可以在同一個模塊中做同樣的事情嗎?
IRC 中的人建議我使用映射字典將字符串類名映射到類,但如果有更簡單的方法,我不想這樣做。
import sys
getattr(sys.modules[__name__], "Foo")
# or
globals()['Foo']
import sys
def str2Class(str):
return getattr(sys.modules[__name__], str)
globals()[class_name]
請注意,如果這不是絕對必要的,您可能需要重構代碼以不使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.