我是python的新手,并尝试编写一个python脚本,它将采用两个命令行参数,对它们执行某些操作,并将输出返回给stdout。
我的脚本是这样的:
class MyClass:
def GET(self):
#get the passed in arguments in arg1 and arg2
return self.perform(arg1, arg2)
def perform(self, arg1, arg2):
return arg1+arg2
if __name__ == "__main__":
#call the GET method of MyClass with all the arguments
sys.argv[1:]
传递给GET
的{{1}}方法?MyClass
的签名是否会从GET
更改为GET(self)
? 答案 0 :(得分:0)
你所写的是实例方法,需要一个实例供你调用它们。 E.g。
x = MyClass() # create an instance of MyClass
x.GET()
但是,arg1
和arg2
从未初始化,因此您的GET
方法无法知道它们是什么。如果要将它们传递给GET
,则需要将它们指定为参数:
class MyClass:
def GET(self, arg1, arg2):
...
然后你可以用
调用方法x.GET(sys.argv[1], sys.argv[2])
但这会使GET
变得毫无意义,因为它只是将调用重定向到perform
方法。
如果您愿意,可以将argv
数组本身传递给GET
。这需要:
class MyClass:
def GET(self, args):
return self.perform(args[1], args[2])
...
x = MyClass()
x.GET(sys.argv)
如果要将结果输出到stdout
,则可以使用print
。 E.g。
print(x.GET(sys.argv))