python:将bash/cmd行中的参数作为对象处理的更好解决方法

python:将bash/cmd行中的参数作为对象处理的更好解决方法,python,python-2.7,Python,Python 2.7,我正在通过一个像这样的考试 python file.py arg1 arg2 arg3 我想知道,对于以下代码,是否有办法将这些参数视为对象而不是字符串: one = sys.argv[1] two = sys.argv[2] three = sys.argv[3] from one import two a = two.three() 因为一二三就是弦。如何将它们解析为对象 更新: pkg = import_module(two, package=one) 给予 导入(名称) I

我正在通过一个像这样的考试

python file.py arg1 arg2 arg3
我想知道,对于以下代码,是否有办法将这些参数视为对象而不是字符串:

one = sys.argv[1]
two = sys.argv[2]
three = sys.argv[3]
from one import two
    a = two.three()
因为一二三就是弦。如何将它们解析为对象

更新:

pkg = import_module(two, package=one)
给予

导入(名称)
ImportError:没有名为的模块

您可以使用内置的
\uuuuuuuuuuuuuuuuuuuuuu
imp
以编程方式导入对象:

# Import 'name' relative to 'path'
module = imp.load_module(name, *imp.find_module(name, [path]))
每当我想以编程方式导入模块时,我就是这样做的,但是
imp.find_module
返回一个3元组:

fil, path, desc = imp.find_module(name, [path])
module = imp.load_module(name, fil, path, desc)

您可以使用内置的
\uuuuu导入\uuuu
imp
以编程方式导入对象:

# Import 'name' relative to 'path'
module = imp.load_module(name, *imp.find_module(name, [path]))
每当我想以编程方式导入模块时,我就是这样做的,但是
imp.find_module
返回一个3元组:

fil, path, desc = imp.find_module(name, [path])
module = imp.load_module(name, fil, path, desc)
我想你想要的是

我想你想要的是

您可以使用或

您可以使用或


小鬼有什么用?这是解包。我将编辑答案,使其更清晰一些好的,我刚刚阅读了find_模块库,看到它以元组形式返回。但是,当它返回一个3元组时,我们能不能只做w/o*?我不知道你的意思,但由于我通常不需要访问
文件
路径
描述
,我通常只将它们传递到
加载模块
解包。仔细阅读文档,我们必须关闭
文件
,因此最好多行操作。最终,
imp
更强大,更细致,但
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
也可以正常工作。imp中。我将编辑答案,使其更清晰一些好的,我刚刚阅读了find_模块库,看到它以元组形式返回。但是,当它返回一个3元组时,我们能不能只做w/o*?我不知道你的意思,但由于我通常不需要访问
文件
路径
描述
,我通常只将它们传递到
加载模块
解包。仔细阅读文档,我们必须关闭
文件
,因此最好多行操作。归根结底,
imp
更强大、更细致,但
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
也可以正常工作?我已经使用这个库导入了模块。现在我想访问一个名为three的函数,它作为一个参数给出,在您给出的具体示例中,您可以使用
getattr(importlib.import_module(one+'.+two),three)(
什么是a和b?我已经使用这个库导入了模块。现在,我想访问一个名为three的函数,它在您给出的具体示例中作为参数提供,您可以使用
getattr(importlib.import_module(一+'.+二),三)(
import importlib
path = importlib.import_module('os.path')
print(path.join('a','b'))