0

その仕事の一部としてスクリプトを実行するためにsubprocess.callを呼び出す必要があるクラスがあります。

モジュールでクラスを定義し、モジュールの上部でサブプロセスから呼び出し関数をインポートしました。

クラスの関数の1つでcall()を使用するだけでよいのか、それともデータメンバーにして、self.call関数オブジェクトを介して呼び出す必要があるのか​​わかりません。

私は後者を好みますが、これを行う方法がわかりません。理想的には、上部にサブプロセスを持たず、次のようなものを使用したいと思います。

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

しかし、上記は機能しません。これをどのように行いますか?私はPython3を初めて使用します。

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 に答える