반응형
Python3에서 __builtin__ 모듈은 어디에 있습니까? 이름이 변경된 이유는 무엇입니까?
__builtin__
모듈과 사용 방법 에 대해 궁금 했지만 Python3에서는 찾을 수 없습니다! 왜 옮겨 졌나요?
파이썬 2.7
>>> import __builtin__
>>>
파이썬 3.2
>>> import __builtin__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named __builtin__
>>>
__builtin__
모듈은 이름이 바뀌 었습니다 builtins
Python3한다.
이 변경 사항은 일반 Python 개발자의 두 가지 혼란 원인을 해결합니다.
- 그것은인가
'__builtins__'
또는'__builtin__'
그 전역 네임 스페이스에? 젠장! - 가 특별한 메소드 이름 또는 모듈은? 말할 수 없습니다.
__builtin__
이 혼란은 주로 pep8 규칙 위반으로 인해 발생합니다 . 또한 모듈에 복수화가 없기 때문에 통신도 방해가됩니다. 이 두 가지 모두 Guido가 http://mail.python.org/pipermail/python-ideas/2009-March/003821.html 에서 다음을 설명하기 위해 가야하는 길이로 크게 설명됩니다 .
[CPython]은
__builtins__
내장 함수가 검색되는 dict 인 특수 매직 항목 ( 's' 포함)을 포함하는 전역을 살펴 봅니다 . 이 dict가 기본 내장 dict ( 's'없이 내장 함수를 정의하는 모듈) 와 동일한 객체 인__builtin__.__dict__
경우__builtin__
감독자 권한을 제공합니다.
예를 들면
Python2.7
>>> import __builtin__
>>> vars(globals()['__builtins__']) is vars(__builtin__)
True
>>>
Python3.2
>>> import builtins
>>> vars(globals()['__builtins__']) is vars(builtins)
True
>>>
관련 자료 :
기타 이름 변경 -http : //docs.pythonsprints.com/python3_porting/py-porting.html#name-changes
__builtins__
이름 확인에서 사용되는 방법에 대한 간결한 설명 -Python의 __builtin__ 모듈
반응형
'Programing' 카테고리의 다른 글
요청 사양에서 ApplicationController 메서드를 스텁하는 방법 (0) | 2020.12.09 |
---|---|
std :: function을 복사해야합니까? 아니면 항상 참조 할 수 있습니까? (0) | 2020.12.09 |
GCC에서 x86 어셈블리의 Intel 구문을 사용할 수 있습니까? (0) | 2020.12.09 |
Node.js : process.env 변수에 대한 문서가 있습니까? (0) | 2020.12.09 |
Gradle 단일 따옴표와 큰 따옴표 (0) | 2020.12.09 |