0

我有一个类应该调用 subprocess.call 来运行脚本作为其工作的一部分。

我已经在一个模块中定义了这个类,并且在模块的顶部我已经从子进程中导入了调用函数。

我不确定是否应该只在类的函数之一中使用 call() ,或者是否应该将其设为数据成员,然后通过 self.call 函数对象调用它。

我更喜欢后者,但我不知道该怎么做。理想情况下,我不希望在顶部有子流程并且有类似的东西:

class Base:
    def __init__():
        self.call = subprocess.call

但以上不起作用。你会怎么做呢?我对 Python 3 很陌生。

4

1 回答 1

1

你的意思是你想要:

import subprocess

class Base:
    def __init__(self):  #don't forget `self`!!!
        self.call = subprocess.call

instance = Base()
print (instance.call(['echo','foo']))

虽然我真的更喜欢:

import subprocess

class Base:
    call = staticmethod(subprocess.call)
    def __init__(self):
        self.call(["echo","bar"])

instance = Base()
print (instance.call(['echo','foo']))

最后,如果您不需要将call类作为 API 的一部分,我认为最好只subprocess.call在您的方法中使用。

于 2012-11-02T17:20:47.170 回答