我有一个类应该调用subprocess.call来运行脚本作为其工作的一部分。
我在模块中定义了类,在模块的顶部我从子进程中导入了调用函数。
我不确定是否应该在类的一个函数中使用call(),或者我是否应该将其作为数据成员,然后通过self.call函数对象调用它。
我更喜欢后者,但我不知道该怎么做。理想情况下,我不希望在顶部有子进程,并有类似的东西:
class Base:
def __init__():
self.call = subprocess.call
但上述方法无效。你会怎么做呢?我是Python 3的新手。
答案 0 :(得分: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
。