파이썬의 모듈 데이터는 어디에서 오는가? 먼저 파이썬이 이 패키지 모듈을 어떻게 찾는지 알아야 합니다. 그러면 네임스페이스 개념을 좀 더 깊이 이해하면 파이썬의 모듈 데이터가 어디서 오는지 알 수 있습니다. .
검색 경로
모듈을 가져올 때 Python 파서는 다음을 검색합니다. 모듈 위치 검색 순서는
1입니다. 현재 디렉터리
2이면 Python은 쉘 변수 아래의 모든 디렉터리를 검색합니다. 파이썬패스.
3. 찾을 수 없으면 Python은 기본 경로를 확인합니다. UNIX에서 기본 경로는 일반적으로 /usr/local/lib/python/입니다.
모듈 검색 경로는 시스템 모듈의 sys.path 변수에 저장됩니다. 변수에는 현재 디렉터리인 PYTHONPATH와 설치 프로세스에서 결정된 기본 디렉터리가 포함됩니다.
네임스페이스 및 범위
변수는 일치하는 개체를 보유하는 이름(식별자)입니다. 네임스페이스는 변수 이름(키)과 해당 개체(값)를 포함하는 사전입니다.
Python 표현식은 로컬 네임스페이스와 전역 네임스페이스의 변수에 액세스할 수 있습니다. 지역 변수의 이름이 전역 변수와 동일한 경우 지역 변수가 전역 변수를 덮어씁니다.
각 함수에는 고유한 네임스페이스가 있습니다. 클래스 메소드의 범위 지정 규칙은 일반 함수의 경우와 동일합니다.
Python은 함수 내에 할당된 변수가 로컬이라는 가정하에 변수가 로컬인지 전역인지 지능적으로 추측합니다.
따라서 함수 내에서 전역 변수에 값을 할당하려면 전역 문을 사용해야 합니다.
global VarName의 표현식은 Python이 VarName이 전역 변수임을 알려주므로 Python은 로컬 네임스페이스에서 이 변수를 찾지 않습니다.
예를 들어 전역 네임스페이스에 Money 변수를 정의합니다. 그런 다음 함수 내 변수 Money에 값을 할당하면 Python은 Money가 지역 변수라고 가정합니다. 그러나 로컬 변수 Money에 액세스하기 전에 이를 선언하지 않았으며 결과는 UnboundLocalError입니다. 이 문제는 global 문 앞에 있는 주석을 취소하면 해결될 수 있습니다.
#!/usr/bin/python # -*- coding: UTF-8 -*- Money = 2000 def AddMoney(): # 想改正代码就取消以下注释: # global Money Money = Money + 1 print Money AddMoney() print Money
위 내용은 Python 모듈 데이터는 어디에서 오는가?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!