Python dir() 내장 함수
Python 3 설명서에서 발췌
인수 없이 호출하면 현재 로컬 범위의 이름 목록을 반환합니다. 인수가 있으면 해당 객체에 대한 유효한 속성 목록을 반환하려고 시도합니다.
Introduction
Python 의 dir() 함수는 현재 네임스페이스의 이름 목록이나 주어진 객체의 속성을 반환하는 강력한 내장 함수입니다. 일반적으로 객체, 모듈 및 클래스를 검사하고 탐색하는 데 사용되며, 작업할 수 있는 사용 가능한 메서드, 속성 및 이름을 찾는 데 도움이 됩니다.
Syntax
dir([object])
object(선택 사항): 속성을 탐색하려는 객체입니다. 제공되지 않으면 현재 네임스페이스의 이름을 반환합니다.
현재 네임스페이스의 이름 탐색
a = 10
b = "Hello"
def my_function():
pass
print(dir())
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'b', 'my_function']
모듈 속성 탐색
import math
print(dir(math))
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', ... ]
객체 속성 탐색
class MyClass:
def __init__(self):
self.x = 5
self.y = "Hello"
obj = MyClass()
print(dir(obj))
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', ... 'x', 'y']
내장 유형과 함께 dir() 사용하기
my_list = [1, 2, 3]
print(dir(my_list))
[..., 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
dir() 출력 필터링
import math
print([name for name in dir(math) if not name.startswith("__")])
['acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', ... ]