48

使用例:

def f(a, b, c, d): 
    print(a, b, c, d, sep = '&')

f(1,2,3,4)
>>> 1&2&3&4

f(*[1, 2, 3, 4])
>>> 1&2&3&4

Pythonドキュメントのどこで*説明されていますか?

4

2 に答える 2

53

*args呼び出し規約は、式のリファレンスに記載されています。

構文*expressionが関数呼び出しに表示される場合はexpression、反復可能と評価する必要があります。この反復可能要素の要素は、追加の位置引数であるかのように扱われます。位置引数x1、...、xNがありexpression、シーケンスy1、...、yMに評価される場合、これはM + N位置引数x1、...、xN、y1、..を使用した呼び出しと同等です。 。、yM

したがって、[1, 2, 3, 4]反復可能な式として使用し、他に位置引数がなかったため、M=0およびN=4の呼び出しとして扱われ、合計4つの位置引数になります。

したがって、iterableが位置の後f(1, 2, *[3, 4])に来る場合は、関数をiterable引数とpositional引数の任意の組み合わせとして呼び出すこともできます。

于 2012-09-26T09:01:56.820 に答える