我上课了
class Foo():
def some_method():
pass
Run Code Online (Sandbox Code Playgroud)
和同一模块中的另一个类:
class Bar():
def some_other_method():
class_name = "Foo"
#can I access the class Foo above using the string "Foo"?
Run Code Online (Sandbox Code Playgroud)
我希望能够Foo
使用字符串"Foo" 访问该类.
如果我使用另一个模块,我可以这样做:
from project import foo_module
foo_class = getattr(foo_module, "Foo")
Run Code Online (Sandbox Code Playgroud)
我可以在同一个模块中做同样的事情吗?
IRC中的人建议我使用映射字典将字符串类名映射到类,但如果有更简单的方法,我不想这样做.
kha*_*hik 48
import sys
getattr(sys.modules[__name__], "Foo")
# or
globals()['Foo']
Run Code Online (Sandbox Code Playgroud)
import sys
def str2Class(str):
return getattr(sys.modules[__name__], str)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
33918 次 |
最近记录: |