gpt4 book ai didi

python - 从脚本和命令行访问函数

转载 作者:太空狗 更新时间:2023-10-30 02:47:07 27 4
gpt4 key购买 nike

我想做以下事情:

我有一个类应该提供几个函数,需要不同的输入。我想从其他脚本中或仅从命令行使用这些功能。

例如我有“测试”类(class)。它有一个功能“quicktest”(基本上只是打印一些东西)。 (来自命令行)我希望能够

$ python test.py quicktest "foo" "bar"

而 quicktest 是函数的名称,“foo”和“bar”是变量。

另外(在另一个脚本中)我想

from test import test

# this
t = test()
t.quicktest(["foo1", "bar1"])

# or this
test().quicktest(["foo2", "bar2"])

我就是无法将其用于工作。我设法为第一个请求写了一个类,为第二个请求写了一个类,但不是为他们两个都写了一个类。问题是我有时必须通过(self)调用函数,有时不能,而且我必须随时提供给定的参数,这也有点复杂。

那么,有人对此有想法吗?


这是我已经拥有的:

仅适用于命令行:

class test:
def quicktest(params):
pprint(params)

if (__name__ == '__main__'):
if (sys.argv[1] == "quicktest"):
quicktest(sys.argv)
else:
print "Wrong call."

仅在其他脚本中有效:

class test:
_params = sys.argv

def quicktest(self, params):
pprint(params)
pprint(self._params)

if (__name__ == '__main__'):
if (sys.argv[1] == "quicktest"):
quicktest()
else:
print "Wrong call"

最佳答案

尝试以下(注意不同的缩进,if __name__ 部分不是test 的部分):

class test:
def quicktest(params):
pprint(params)

if __name__ == '__main__':
if sys.argv[1] == "quicktest":
testObj = test()
testObj.quicktest(sys.argv)
else:
print "Wrong call."

来自其他脚本:

from test import test
testObj = test()
testObj.quicktest(...)

关于python - 从脚本和命令行访问函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17164382/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com