2012-01-28 3 views

답변

57

__builtin__ 모듈 Python3에 builtins로 개명되었다.

이 변경으로 평균 Python 개발자는 2 가지 혼란을 해결할 수 있습니다.

  • 글로벌 네임 스페이스에있는 '__builtins__' 또는 '__builtin__'입니까? Darn s!
  • __builtin__special method name 또는 모듈입니까? 나는 에게 말할 수 없다.

이 혼란은 주로 pep8 대회의 위반으로 인해 발생합니다. 또한, 모듈 상에 복수화가 없다는 점도 통신을 방해합니다.

[CPython의]이 __builtins__ (AN의 '포함) 특별한 마법의 항목을 포함하는 전역에서 보이는

어떤이 :이 모두 크게 귀도는이 다음 http://mail.python.org/pipermail/python-ideas/2009-March/003821.html에서 설명 가야 길이에 의해 설명된다 built-in 함수가 검색되는 dict. 이 DICT가 기본 와 같은 객체 인 경우 내장 딕셔너리는 ( __builtin__.__dict____builtin__ 인 - -의 '없이 은 내장 함수를 정의하는 모듈이다) 제공 하면 관리자 권한을, ... 예를 들어

,

Python2.7

>>> import __builtin__ 
>>> vars(globals()['__builtins__']) is vars(__builtin__) 
True 
>>> 

Python3.2

,617,
>>> import builtins 
>>> vars(globals()['__builtins__']) is vars(builtins) 
True 
>>> 

관련 리소스 :

다른 이름 변경 - 이름 확인에 사용되는 방법 __builtins__의 간결한 설명은 http://docs.pythonsprints.com/python3_porting/py-porting.html#name-changes

-__builtin__ module in Python

관련 문제