Python 내장 범위 정보
4410 단어 Python
내장 오실로그래프는 무엇입니까?
필자처럼 Python 경험이 없고 다른 언어의 경험이 있는 상황에서 현지 범위와 전 세계 범위는 많은 사람들이 이해할 수 있지만 그 외에도'내장 범위'가 있다.
먼저 그림으로 작용역의 범위를 표시하면 다음과 같은 느낌이 든다.
이름으로 볼 때 전 세계가 가장 크다고 생각하지만, 나는 개인적으로 내장이 가장 크다고 생각한다.
이 내장 범위는 구체적으로 어떤 범위가 "여러 파일의 범위를 뛰어넘는"것인지입니다.
사실 나는 간단한 절차를 써서 확인하고 싶다.
다음은
main.py
에서 foo 모듈을 가져오면 show_이것은 score 함수를 인용하는 코드입니다.foo.py
score = 100 # グローバル
def show_score():
print('score: ', score)
main.pyimport foo
foo.show_score()
실행 결과python main.py
score: 100
main 모듈을 고쳐 보세요.score는foo모듈의 전역 변수이기 때문에main모듈에서 인용할 때foo모듈을 거칩니다.
main.py
import foo
print(foo.score)
실행 결과python main.py
100
이 밖에main 모듈을 다시 써 보십시오.그리고
scoreは定義されていません
오류가 발생했습니다.score는foo모듈의 변수입니다.main모듈의 변수가 아니기 때문에 잘못된 것 같습니다.
main.py
import foo
print(score) # fooモジュールのscore変数を参照したつもり
실행 결과python main.py
Traceback (most recent call last):
File "main.py", line 3, in <module>
print(score)
NameError: name 'score' is not defined
전체적인 이 단어의 인상을 보면 print(score)
참조하고 싶은 곳이지만 틀릴 수 있다.builtins 모듈
상술한 오류를 피하려면 score를 내장 역할 영역에 등록하십시오.
다른 모듈에서 직접 참조할 수 있도록 범위를 전역적으로 확장하는 이미지입니다.
builtins
모듈을 사용하여 내장 범위를 등록할 수 있습니다.main.py
import foo
print(score) # 「foo.」なしにscoreを参照できる
foo.pyimport builtins
builtins.score = 100
def show_score():
print('score: ', score)
실행 결과python main.py
100
builtins 모듈을 가져오고 score를 내장 역할 영역에 등록합니다.나는 네가 위의 잘못이 없다는 것을 확인할 수 있을 것이라고 생각한다.
하지만 모든 것이 내장 범위에 등록되면 상당히 위험한 코드가 될 수 있으니 주의하세요.
참고로 상술한 코드에도 print 함수가 나타나지만 내장 작용역에 존재한다.
따라서
モジュール名.print()
처럼 쓸 필요가 없다.지원
이 기사에서 내장 범위에 주력하고 싶어서 언급하지 않았지만 실제로는'저장 범위'라는 범위도 있으니 관심 있는 분들은 조사해 주십시오.
참조 페이지
Reference
이 문제에 관하여(Python 내장 범위 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/y-okamon/items/c6564980f66aad29b060텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)