Python 速查手冊

9.7 作用域相關

作用域相關的內建函數回傳作用域的識別字名稱,以下為列表說明

參數版本功能
dir(o)若沒有提供參數 o 就回傳目前作用域下的所有識別字,反之提供參數 o 就回傳 o 內的所有識別字名稱。
globals()回傳所有全域識別字及值的字典。
locals()回傳目前作用域下所有識別字及值的字典。

dir(o) 若沒有提供參數 o 就回傳目前作用域下的所有識別字,反之提供參數 o 就回傳 o 內的所有識別字名稱,舉例如下

print(dir())
print(dir(list))

#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:fscope01.py
# 功能:示範內建函數
# 作者:張凱慶

於命令列執行以上程式,結果如下

$ python3 fscope01.py
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
$

globals() ,回傳所有全域識別字及值的字典,舉例如下

print(globals())

#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:fscope02.py
# 功能:示範內建函數
# 作者:張凱慶

於命令列執行以上程式,結果如下

$ python3 fscope02.py
{'__spec__': None, '__package__': None, '__doc__': None, '__cached__': None, '__builtins__': <module 'builtins' (built-in)>, '__name__': '__main__', '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x101f859e8>, '__file__': 'fscope02.py'}
$

locals() 回傳目前作用域下所有識別字及值的字典,舉例如下

class Demo:
    def __init__(self):
        print(locals())

d = Demo()

#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:fscope03.py
# 功能:示範內建函數
# 作者:張凱慶

於命令列執行以上程式,結果如下

$ python3 fscope03.py
{'self': <__main__.Demo object at 0x101fba358>}
$

上一頁: 9.6 執行相關
Python 速查手冊 - 目錄
下一頁: 9.8 屬性相關
回 Python 教材首頁