2012-06-01 6 views
1
args = [4,5] 
kwargs = {'x': 7} 
func(a, b=2, *args, **kwargs) 

a, b, args 및 kwargs에 대한 언급 된 명명법은 무엇입니까? 특히파이썬 함수 인수에 대한 명명법

, 여기에 공백을 채우

'a' is a (_blank_) positional argument 
'args' contains (_blank_) positional arguments 
'b' is a (_blank_) keyword argument 
'kwargs' contains (_blank_) keyword arguments 

을 내가

{고정/정식/임의의 길이/실제/변수 위치} () = 뭔가를 찾고 있어요

또한 위의 내용이 잘못 되었다면 나를 수정하십시오.

+5

여기에 캡처하려는 의미가 확실하지 않지만 '공백'을 공백으로 대체하면 공백으로 표시됩니다. 즉, 모든 문장이 올바른 것으로 보입니다. 예 : 'a'는 위치 인수입니다. ' –

+0

@mark :'형식 매개 변수 '와'함수 인수 '의 차이점을 분명히하려합니까? –

+0

함수 인수에 대한 토론을 명확하게하려고합니다. 예를 들어 'b'가 2 대신 3으로 설정 되었다면 누군가 나에게 무엇을 말할까요? "이봐, 당신의 키워드 논쟁이 틀렸다"는 말은 나에게 모호하다. – mark

답변

1

찾고있는 것의 대부분은 the Python Tutorial에서 찾을 수 있습니다.

은 왼쪽에서 오른쪽으로 :

  • a가 위치 인수입니다.
  • b=3 임의 인수 목록 3.
  • *args의 디폴트 값을 갖는 위치 인자이다 튜플로 언팩.
  • **kwargs은 사전으로 압축 해제 된 키워드 인수입니다.
1

에드워드 로페 (Edward Loper)가 이미 설명한 바와 같이, 귀하의 조건은 정확합니다. 당신은보다 구체적인 될 수 있습니다

  1. 은 'A'는 첫 번째 위치 인수가 필요 입니다.
  2. 'args'는 불법의 위치 인수를 전달합니다. (당신이 키워드 인수 후를 사용하기 때문에 당신은 알고있다.)
  3. 는 'B'는 선택 키워드 인수 ... B라는 이름의 ... 2.
  4. 'kwargs로'의 기본 값이다 임의 전달 키워드 인수

합법적 args를 사용하는 경우

def punk(a, b, *args, **kwargs): 
    print a 
    print b 
    print args 
    print kwargs 

a=1; b=2; args = [4,5]; kwargs={'x':7} 
punk(a, b=b, *args, **kwargs) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: punk() got multiple values for keyword argument 'b' 

, 당신은이 잠재적으로 필요한 임의의 위치 인수를 전달하는 데 사용됩니다 말할 수 있습니다.

>>> punk(a, *args) 
1 
4 
(5,) 
{} 
관련 문제