0

次のように、クラス内で外部ライブラリのメソッドを複数回呼び出します。

class MyClass:

    const_a = "a"
    const_b = True
    const_c = 1

    def push(self, pushee):
        with ExternalLibrary.open(self.const_a, self.const_b, self.const_c) as el:
            el.push(pushee)

    def pop(self):
        with ExternalLibrary.open(self.const_a, self.const_b, self.const_c) as el:
            return el.pop()

ステートメントを含む行は、with毎回定数を引数として渡す必要があるため、私を悩ませています。タプルのような事前定義されたデータ構造に引数を格納し、それを外部ライブラリに渡したいと思います。

4

1 に答える 1

3

あなたはこれを行うことができます:

args = (const_a, const_b, const_c)
ExternalLibrary.open(*args)

構文は*、反復可能オブジェクト(タプル、リストなど)を関数呼び出しの個々の引数にアンパックします。**辞書をキーワード引数に解凍するための構文もあります。

kwargs = {'foo': 1, 'bar': 2}
func(**kwargs) # same as func(foo=1, bar=2)

のように、同じ呼び出しで両方を使用することもできますfunc(*args, **kwargs)

于 2012-11-19T20:04:16.060 に答える