2010-12-12 2 views
2

kwarg 스타일의 DICT 초기화 사용 :python의 dict 생성자에 대해 예약 된 kwargs가 있습니까?

In [4]: dict(to=0, from=1) 
------------------------------------------------------------ 
    File "<ipython console>", line 1 
    dict(to=0, from=1) 
       ^
SyntaxError: invalid syntax 

'에서'키에 대한 특별한 무엇입니까 : 구문 오류가 발생합니다 '에서'키를 정의하는 몇 가지 이유

In [3]: dict(a=1, b=2, c=3) 
Out[3]: {'a': 1, 'b': 2, 'c': 3} 

를? kwarg 스타일 초기화를위한 다른 예약 된 키가 있습니까?

저는 파이썬 2.6을 사용하고 있습니다.

답변

5

from은 수입에 사용됩니다. 당신은 여전히하지만 통해 얻을 kwarg 확장을 사용할 수 있습니다

Python Language Reference, §2.3.1, "Keywords"

참고.

+2

"explicit는 암시 적보다 낫다";) kwargs를 허용하는 함수를 호출하고 다음과 같이 kwarg를 "from"의 키로 전달할 수있다 :'the_function (** { 'from': 'a a very 바보 같은 장소 '})'. –

1

키워드입니다 같은 kwargs로

에서
2

에서 from 당신은 파이썬 키워드를 사용할 수 없습니다

from threading import Thread 

파이썬은 상황에 맞는 키워드를 가지고 있지 않습니다위한 이름은 다음 중 하나입니다 키워드 나 식별자로 사용할 수 있습니다. 과거에는 "as"가 처음 소개되었을 때 import 문에서 특수하게 사용되었지만 "full keyword"로 승격되었습니다.

문맥 인식 키워드는 의심스러운 기능입니다. 예 :

print=3 

일 또는 실패 (그것은 문법적으로 잘못된 인쇄 문, 또는 변수라는 이름의 인쇄에 할당 될 수있다). 또는 무엇에 대해서

def print(x): 
    print x 
print(3) 

이 기능을 정의해야합니까? 그렇다면 마지막 라인이 통화입니까?

+0

나는 'from'이 키워드라는 것을 알고 있습니다. 나는 그것이 kwarg 표현에서 그렇게 해석되는 것이 놀랍다. 파서가이 컨텍스트에서 차이점을 알만큼 충분히 똑똑하다고 생각할 것입니다. – awesomo

+1

@awesomo는 키워드가 문맥에 관계없이 항상 키워드임을 의미합니다. –

+0

편집을 참조하십시오 : 키워드가 상황에 맞는 것이 아닙니다. –

3

from은 소수의 다른 토큰과 마찬가지로 Python의 키워드/예약어입니다 (from). 일부 수작업 개체를 모듈에서 현재 네임 스페이스로 가져올 때 특히 사용됩니다. 식별자로 사용할 수 없습니다 (궁극적으로 kwargs는 식별자입니다). 그것은 이론적으로 이어도 허용되지 않습니다. 구문 분석기를 간단하게 유지하고 파서 제인을 작성하는 사람들이 모호 할 수 있습니다.)