假设有一个 cmd
python somefile.py arg
somefile 包含一个定义
class CamelCase(object):
我想获取 arg 并使其成为类实例,例如:
arg = CamelCase(whatever_args)
问题是如果我使用 os 中的 sysarg 并将其作为 arg,它不会是一个字符串吗?
然后有什么解决方法吗?
假设有一个 cmd
python somefile.py arg
somefile 包含一个定义
class CamelCase(object):
我想获取 arg 并使其成为类实例,例如:
arg = CamelCase(whatever_args)
问题是如果我使用 os 中的 sysarg 并将其作为 arg,它不会是一个字符串吗?
然后有什么解决方法吗?
据我所知,你希望你的脚本运行为
./script.py MyObject
并创建一个MyObject
.
为此,您可以使用globals():
import sys
class A(object):
def __init__(self):
print "A created"
class B(object):
def __init__(self):
print "B created"
cls = globals()[sys.argv[1]] # Get the class name from globals
instance = cls()
注意事项:
也许您真正想要的是一个可能的参数和类的字典,如下所示:
classes = {
'A': A,
'B': B,
}
cls = classes[sys.argv[1]]
instance = cls()