如何在python中调用类的方法?

时间:2014-10-10 14:46:47

标签: python command-line command-line-arguments

我是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)

1 个答案:

答案 0 :(得分:0)

你所写的是实例方法,需要一个实例供你调用它们。 E.g。

x = MyClass() # create an instance of MyClass
x.GET()

但是,arg1arg2从未初始化,因此您的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))