Python 3 - 类的函数数据成员

时间:2012-11-02 16:34:19

标签: python python-3.x

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

我在模块中定义了类,在模块的顶部我从子进程中导入了调用函数。

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

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

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

但上述方法无效。你会怎么做呢?我是Python 3的新手。

1 个答案:

答案 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