Python의 네임스페이스와 역할 영역 분석

이름 공간
이름 공간 (namespaces): 이름과 메모리 주소의 연결 관계를 저장하는 데 사용되며, 창고 구역을 구분합니다.
역할: 이름 공간은 창고에 같은 이름을 저장하여 이름 충돌을 해결할 수 있습니다
이름 공간은 세 가지로 나뉩니다.
  • 내장 명칭 공간
  • 전역 이름 공간
  • 국부 명칭 공간
  • 내장 이름 공간
  • 내장 이름 공간: Python 해석기에 내장된 이름을 저장하는 데 사용됩니다
  • 생명주기: Python 해석기가 시작되면 생성되고, Python 해석기가 꺼지면 삭제됩니다
  • 예: print, input, int..
  • 글로벌 이름 공간
  • 전역 이름 공간: 최고급 코드를 실행하면 발생하는 이름, 또는 함수 내 정의와 내장된 것을 제외하고 나머지는 전역 이름 공간이다
  • 생명주기: Python 파일이 실행될 때 생성되며, Python 파일이 실행된 후에 삭제됩니다
  • 예:
  • 
    #  a
    a = 1
    
    #  func
    def func():
      pass
    
    #  MyClass
    class MyClass:
      pass
    로컬 이름 공간
    국부 이름 공간: 함수를 호출할 때 함수체 코드를 실행하는 과정에서 발생하는 함수 내의 이름
    생명주기: 함수 호출 시 발생, 함수 호출 후 제거
    예:
    
    def func(x, y):
      pass
    
    func(1, 2)
    명칭 공간의 선후 순서
  • 명칭 공간 마운트 순서: 내장 명칭 공간 -> 전역 명칭 공간 -> 국부 명칭 공간
  • 명칭 공간 삭제 순서: 국부 명칭 공간 -> 전역 명칭 공간 -> 내장 명칭 공간
  • 이름의 찾기 우선순위: 현재 위치에서 한 층 한 층 찾습니다
  • 역할 영역
    전역 역할 영역
    전역 역할 영역: 내장 이름 공간, 전역 이름 공간
    특징:
  • 전체 국면이 생존한다
  • 전역 유효: 모든 함수에 공유됩니다
  • 국부 작용역
    로컬 역할 영역: 로컬 이름 공간
    특징:
  • 임시생존
  • 국부적 유효: 함수 내 유효
  • LEGB 원칙
    변수 찾기 호출 순서는 LEGB 원칙(즉, 근접 원칙)을 사용합니다.
    B ―― Builtin(Python);Python 내장 모듈의 네임스페이스(내장 도메인)
    G ―― Global(module); 함수 외부에 있는 이름 공간 (전역 역할 영역)
    E ―― Enclosing function locals;외부 내포된 함수의 역할 영역 (내포된 역할 영역)
    L ―― Local(function);현재 함수 내의 역할 영역 (국부 역할 영역)
    근접 원칙에 근거하여 아래에서 위로 안에서 바깥으로 순서대로 찾다
    글로벌과 nonlocal
  • 글로벌: 전역 변수가 전역 변수를 수정했다고 성명합니다
  • nonlocal: 국부 변수(현재 함수 위의 국부 변수)를 수정합니다
  • 
    # global 
    x = 1
    def func():
      global x
      x = 2
    func()
    print(x)
    
    # nonlocal 
    def func1():
      x = 1
      def func2():
        nonlocal x
        x = 2
      func2()
      print(x)
    func1()
    총결산
  • 명칭 공간은 창고에 대한 구분이고 진정으로 존재하는 것은 창고 구역이다.명칭 공간은 일종의 가상 구분일 뿐이다
  • 명칭 공간은 우선순위의 구분만 있을 뿐 끼워 넣는 관계가 없다
  • 이름 공간의'중첩 관계'는 이름의 찾기 순서를 결정한다
  • 명칭 공간의'중첩 관계'는 함수 정의 단계를 기준으로 한다
  • 이상은Python의 명칭 공간과 작용 영역에 대한 상세한 내용을 분석하고python의 명칭 공간과 작용 영역에 대한 더 많은 자료는 저희의 다른 관련 문장을 주목하세요!

    좋은 웹페이지 즐겨찾기