dir() 함수
중국어 설명:
내장된 dir 함수를 사용하여 모듈 정의 식별자를 나열할 수 있습니다. 식별자에는 함수, 클래스 및 변수가 포함됩니다.
dir()에 모듈 이름을 제공하면 모듈에서 정의한 이름 목록이 반환됩니다. 인수가 제공되지 않으면 현재 모듈에 정의된 이름 목록을 반환합니다.
먼저 가져온 sys 모듈에서 dir을 사용하는 방법을 살펴보겠습니다. 우리는 여기에 엄청난 양의 속성 목록이 포함되어 있음을 알 수 있습니다.
다음으로 인수를 전달하지 않고 dir 함수를 사용합니다. 기본적으로 현재 모듈의 속성 목록을 반환합니다. 가져온 모듈도 목록의 일부입니다.
dir의 효과를 관찰하기 위해 새로운 변수 a를 정의하고 여기에 값을 할당한 후 dir을 확인하면 위와 동일한 값이 목록에 추가되는 것을 관찰할 수 있습니다. del 문을 사용하여 현재 모듈의 변수/속성을 삭제하고 이 변경 사항이 dir의 출력에 다시 반영됩니다.
del에 대한 참고 사항 - 이 명령문은 변수/이름을 실행한 후 삭제하는 데 사용됩니다. 이 예 del a에서는 더 이상 변수 a를 사용할 수 없습니다. 이는 마치 존재하지 않았던 것처럼 됩니다.
버전:
이 기능은 모든 버전에서 지원되며 python3에서도 계속 사용할 수 있습니다.
코드 예:
>>> import struct >>> dir() # show the names in the module namespace ['__builtins__', '__doc__', '__name__', 'struct'] >>> dir(struct) # show the names in the struct module ['Struct', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_clearcache', 'calcsize', 'error', 'pack', 'pack_into', 'unpack', 'unpack_from'] >>> class Shape(object): def __dir__(self): return ['area', 'perimeter', 'location'] >>> s = Shape() >>> dir(s) ['area', 'perimeter', 'location']
영문 설명:
dir([object])
인수 없이 현재 로컬 범위의 이름 목록을 반환합니다. 인수를 사용하면 해당 객체에 대한 유효한 속성 목록을 반환하려고 합니다.
객체에 __dir__()이라는 메서드가 있는 경우 이 메서드는 호출되며 속성 목록을 반환해야 합니다. 이를 통해 사용자 정의 __getattr__() 또는 __getattribute__() 함수를 구현하는 객체가 dir()이 해당 속성을 보고하는 방식을 사용자 정의할 수 있습니다.
객체가 __dir__을 제공하지 않는 경우 (), 함수는 객체의 __dict__ 속성(정의된 경우) 및 해당 유형 객체에서 정보를 수집하려고 최선을 다합니다. 결과 목록은 반드시 완전하지는 않으며 객체에 사용자 정의 __getattr__()이 있는 경우 부정확할 수 있습니다.
기본 dir() 메커니즘은 완전한 정보가 아닌 가장 관련성이 높은 정보를 생성하려고 시도하므로 객체 유형에 따라 다르게 동작합니다.
객체가 모듈 객체인 경우 목록에는 다음이 포함됩니다. 모듈 속성의 이름.
객체가 유형 또는 클래스 객체인 경우 목록에는 해당 속성의 이름과 기본 속성의 재귀적 이름이 포함됩니다.
그렇지 않은 경우 목록에는 객체의 속성 이름, 해당 클래스 속성의 이름 및 해당 클래스의 기본 클래스 속성이 재귀적으로 포함되어 있습니다.