Python:从argumen生成类实例

2024-09-29 23:18:04 发布

您现在位置:Python中文网/ 问答频道 /正文

假设有一个命令

python somefile.py arg

somefile包含一个定义

class CamelCase(object):

我想把arg变成一个类实例,比如:

arg = CamelCase(whatever_args)

问题是,如果我从操作系统使用sysarg并将其作为arg接收,它不是一个字符串吗?你知道吗

还有什么解决办法吗?你知道吗


Tags: 实例字符串py命令定义objectargargs
1条回答
网友
1楼 · 发布于 2024-09-29 23:18:04

据我所知,你希望你的脚本

./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()

相关问题 更多 >

    热门问题