[Python]vars(), dir() 란?
카테고리: py
vars()
vars(object)
- 사용된 클래스의 객체에 대한 dictionary를 반환한다.
- argument 없이 호출 될 때 현재 local symbol table에 일치하는 dictionary를 반환한다.
- argument로 모듈, 클래스, 클래스 인스턴스 객체( dict 속성을 가진 모든것) 등이 건내진다면 그 객체의 symbol table에 일치하는 dictionary를 반환한다.
- 내장된 인스턴스 타입들은 dict 속성이 없으므로, 내장된 인스턴스타입에서 사용될 때 에러를 발생시킨다.
다시 말해 vars()
함수는 객체가 존재하는 경우 객체의 dict 속성을 반환한다. Python에서 객체는 객체의 속성을 키-값 쌍으로 저장하는 __dict__라는 사전을 가질 수 있다. 객체에서 vars()를 호출하면 속성을 나타내는 사전을 반환한다. vars()는 속성 값을 동적으로 검사할 수 있으므로 사용자 정의 객체로 작업할 때 특히 유용하다.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person1 = Person("Alice", 30)
print(vars(person1))
# {'name': 'Alice', 'age': 30}
dir()
dir()
- 사용된 클래스와 조상 클래스의 객체에 대한 dictionary를 반환한다.
- argument없이 호출 될 때 현재 local scope내에 이름의 목록을 반환한다.
- argument가 건내지는 경우 해당 객체에 유효한 속성의 목록을 반환한다.
- 에러 없이 내장된 모든 타입들과 함께 사용될 수 있다.
dir()
함수는 주어진 객체의 네임스페이스에 정의된 정렬된 이름 목록(문자열)을 반환한다. 인수 없이 dir()을 호출하면 현재 모듈의 네임스페이스에 있는 이름을 반환한다.
import math
print(dir(math))
# ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos',
# 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', ...]
댓글 남기기