본문 바로가기
Engineering WIKI/Python

vars() 내장함수

by wonos 2022. 5. 10.

모듈, 클래스, 인스턴스 또는 dict 어트리뷰트가 있는 다른 객체의 dict 어트리뷰트를 돌려줍니다.

인자가 없으면, vars() 는 locals() 처럼 동작합니다. locals 딕셔너리에 대한 변경이 무시되기 때문에 locals 딕셔너리는 읽기에만 유용하다는 것에 주의하세요

locals은 말그대로 locals()가 실행되어지는 함수내의 지역 namespace 들을 정리해서 넣어주고 globals는 전역, 지역, builtin 정보 모두 dict 형태로 정리해 준다.

 

아래 예제를 통해 이해해 보자.

 

locals(), vars() 예제

a_var = range(2)

def locals_test():
    b_var = 3
    c_var = "hi"
    d_var = locals()
    print(d_var)

locals_test()

e_var = globals()
print(e_var)

locals(), globals() 결과값

{'b_var': 3, 'c_var': 'hi'}
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x02BBAF40>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'd:\\\\gas_detector\\\\uart_comms\\\\test.py', '__cached__': None, 'a_var': range(0, 2), 'locals_test': <function locals_test at 0x02D17FA0>, 'e_var': {...}

vars() 결과값

search_url = '<http://news.sbs.co.kr/news/search/main.do?query=%(query)s&pageIdx=%(start)d&collection=&searchOption=1>'
 
query = "korea"     # vars > dict
 
start = 1              # vars > dict
 
url = search_url % vars()
 
Input:
print str(vars())
 
Output:
{'search_url': '<http://news.sbs.co.kr/news/search/main.do?query=%(query)s&pageIdx=%(start)d&collection=&searchOption=1>', '__builtins__': <module '__builtin__'="" (built-in)="">, 
'os': <module 'os'="" from="" 'c:\\python27\\lib\\os.pyc'="">, '__file__': 'd:/1.Choi/Crawler_source/crawler_test.py', 'BeautifulSoup': <class 'bs4.beautifulsoup'="">, '__package__': None,
 'sys': <module 'sys'="" (built-in)="">, 'start': 1, 'query': 'korea', 'url': '<http://news.sbs.co.kr/news/search/main.do?query=korea&pageIdx=1&collection=&searchOption=1>', 
'get_page': , 'time': <module 'time'="" (built-in)="">, '__name__': '__main__', 'urllib2': <module 'urllib2'="" from="" 'c:\\python27\\lib\\urllib2.pyc'="">, '__doc__': None}

'Engineering WIKI > Python' 카테고리의 다른 글

collections 모듈 - namedtuple  (0) 2022.05.12
collections 모듈 - deque  (0) 2022.05.12
collections 모듈 - defaultdict  (0) 2022.05.12
collections 모듈 - Counter  (0) 2022.05.12
파이썬 리스트 컴프리헨션  (0) 2022.05.04
Python 데코레이터  (0) 2022.05.02
파이썬 __ slots __  (0) 2022.04.28
파이썬 property(), @property  (0) 2022.04.25