定義済の名前を dir() で取得できる

名前空間がどうのこうのという時に便利。リスト型で取得される。

print dir()
#['_',
# '__builtins__',
# '__doc__',
# '__file__',
# '__name__'
#]

import os

print dir()
#['_',
# '__builtins__',
# '__doc__',
# '__file__',
# '__name__',
# 'os'
#]

def top():
    text = u'aaaaaaaaaa'
    length = len(text)
    print dir()
    return True

top()
#['length',
# 'text',
#]

print dir()
#['_',
# '__builtins__',
# '__doc__',
# '__file__',
# '__name__',
# 'top',
# 'os'
#]

funcs = dir()

def top2nd():
    print funcs

top2nd()
#['_',
# '__builtins__',
# '__doc__',
# '__file__',
# '__name__',
# 'top',
# 'os'
#]

funcs = dir()

def top3rd()
    print funcs

top3rd()
#['_',
# '__builtins__',
# '__doc__',
# '__file__',
# '__name__',
# 'top',
# 'top2nd',
# 'os'
#]