天天看點

自定義函數_Python函數屬性、自定義屬性、如何檢視函數對象屬性?函數屬性

函數屬性

python中的函數是一種對象,它有屬于對象的屬性。除此之外,函數還可以自定義自己的屬性。注意,屬性是和對象相關的,和作用域無關。

自定義屬性

自定義函數自己的屬性方式很簡單。假設函數名稱為myfunc,那麼為這個函數添加一個屬性var1:

myfunc.var1="abc"
           

那麼這個屬性var1就像是全局變量一樣被通路、修改。但它并不是全局變量。

可以跨子產品自定義函數的屬性。例如,在b.py中有一個函數b_func(),然後在a.py中導入這個b.py子產品,可以直接在a.py中設定并通路來自b.py中的b_func()的屬性。

1 import b2 b.b_func.var1="hello"3 print(b.b_func.var1) # 輸出hello
           
自定義函數_Python函數屬性、自定義屬性、如何檢視函數對象屬性?函數屬性

檢視函數對象屬性

python函數是一種對象,是對象就會有對象的屬性。可以通過如下方式檢視函數對象的屬性:

dir(func_name)
           

例如,有一個屬性__name__,它表示函數的名稱:

1 def f(x):2 y=103 def g(z):4 return x+y+z5 return g6 7 print(f.__name__) # 輸出f
           

還有一個屬性__code__,它表示函數代碼對象:

print(f.__code__)
           

輸出:

繼續閱讀