作用域相關的內建函數回傳作用域的識別字名稱,以下為列表說明
參數版本 | 功能 |
---|---|
dir(o) | 若沒有提供參數 o 就回傳目前作用域下的所有識別字,反之提供參數 o 就回傳 o 內的所有識別字名稱。 |
globals() | 回傳所有全域識別字及值的字典。 |
locals() | 回傳目前作用域下所有識別字及值的字典。 |
dir()
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()
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()
locals() 回傳目前作用域下所有識別字及值的字典,舉例如下
class Demo:
def __init__(self):
print(locals())
d = Demo()
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:fscope03.py
# 功能:示範內建函數
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 fscope03.py |
{'self': <__main__.Demo object at 0x101fba358>} |
$ |
相關教學影片