程式語言:Python
官方文件
簡介:功能說明
inspect — Inspect live objects
官方文件
簡介:功能說明
# in test.py '''test''' __all__ = ['c1', 'f4'] class c1: '''test class''' var1 = 1 def f1(self, a, b=1): pass class d(c1): pass def f2(): a = 1 def cf2(): print(a) return cf2 def f3(name:str, age:(1, 99), species:'狗狗的品種') -> tuple: return (name, age, species) def f4(a, b, *, c, d=2): pass print(__name__) # __main__ print(c1.__name__) # c1 print(c1.f1.__name__) # f1 print(__file__) # test.py print(__doc__) # test print(c1.__doc__) # test class print(c1.__dict__) # {'__weakref__': <attribute '__weakref__' of 'c1' objects>, '__doc__': 'test class', '__module__': '__main__', 'f1': <function c1.f1 at 0x0000000002FD7840>, 'var1': 1, '__dict__': <attribute '__dict__' of 'c1' objects>} print(c1.__base__) # <class 'object'> print(c1.f1.__qualname__) # c1.f1 print(d.__mro__) # (<class '__main__.d'>, <class '__main__.c1'>, <class 'object'>) print(c1.__subclasses__()) # [<class '__main__.d'>] print(c1.f1.__module__) # __main__ print(c1.f1.__defaults__) # (1,) print(c1.f1.__code__) # <code object f1 at 0x00000000028B8D20, file "test.py", line 9> print(c1.f1.__globals__) # {'__cached__': None, 'c1': <class '__main__.c1'>, 'f3': <function f3 at 0x0000000002FD77B8>, '__package__': None, 'f2': <function f2 at 0x000000000282A048>, '__name__': '__main__', '__spec__': None, '__all__': ['c1', 'f4'], '__builtins__': <module 'builtins' (built-in)>, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x00000000028B6DD8>, '__doc__': 'test', '__file__': 'test.py', 'd': <class '__main__.d'>, 'f4': <function f4 at 0x0000000002FD78C8>} print(f2().__closure__[0].cell_contents) # 1 print(f3.__annotations__) # {'name': <class 'str'>, 'species': '狗狗的品種', 'age': (1, 99), 'return': <class 'tuple'>} print(f4.__kwdefaults__) # {'d': 2} print(c1().f1.__self__) # <__main__.c1 object at 0x0000000002FDEDA0>
Magic Attributes
- definition.__name__
- 本身的名字
- 可用來分辨 module 直接執行 or 被 import
- 直接執行
- "__main__"
- 被 import
- 本身的 module 名
- definition.__doc__
- 本身註解
- definition.__qualname__
- 本身的名字,含引用
- definition.__module__
- 本身所在的 module
- module.__file__
- 本身路徑,可搭配 os.path 使用
- module.__all__
- 限定 from module import * 的屬性
- class.__bases__
- class 繼承的 parent
- class.__mro__
- 尋找方法的順序(Method Resolution Order,或 MRO)
- class.__subclasses__()
- 繼承本身的子代 class
- object.__dict__
- object 的變數與函式
- instance.__class__
- instance 所屬的 class
- function.__defaults__
- 本身的默認參數
- function.__code__
- 已編譯的函數對象
- function.__globals__
- 全域變數
- function.__closure__
- 閉包包含的自由變量
- function.__annotations__
- 參數的註釋
- function.__kwdefaults__
- 強制關鍵字參數的 default 值
- method.__self__
- 本身所屬的 instance
Built-in Functions
參考
Data Modelinspect — Inspect live objects
留言
張貼留言