Programing

Python3에서 __builtin__ 모듈은 어디에 있습니까?

lottogame 2020. 12. 9. 07:39
반응형

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__모듈은 이름이 바뀌 었습니다 builtinsPython3한다.

이 변경 사항은 일반 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__ 모듈

참고 URL : https://stackoverflow.com/questions/9047745/where-is-the-builtin-module-in-python3-why-was-it-renamed

반응형