一、dir()是什麼?
dir()是Python中一個非常強大的函數,它可以列出某個Python對象中包含的屬性和方法。下面是一個簡單的例子:
class MyClass: cls_var = 1 def __init__(self): self.var = 2 def my_method(self): pass print(dir(MyClass))
上面這段代碼中,我們通過dir(MyClass)列出了MyClass類中包含的屬性和方法。在輸出的結果中,我們可以看到包括 ‘__init__’, ‘cls_var’, ‘my_method’, ‘var’ 等多個屬性和方法。
除了能夠列出自定義對象中的屬性和方法,dir()還可以用於列出Python內置的對象的屬性和方法。
二、如何更好地使用dir()?
雖然dir()看上去很簡單,但是我們可以通過一些小技巧來更好地利用它:
1. 使用help()函數
通過help()函數,我們可以獲得對某個對象中屬性和方法的詳細描述。
class MyClass: cls_var = 1 def __init__(self): self.var = 2 def my_method(self): pass help(MyClass)
運行上面這段代碼,我們可以看到類MyClass中有三個屬性或方法,也可以看到它們的詳細描述。
2. 過濾掉以’__’開頭和結尾的屬性和方法
如果做過Python開發的同學都知道,以’__’開頭和結尾的屬性和方法是Python中的私有成員。我們可以通過在dir()中加入一個過濾函數來過濾掉這些私有成員:
class MyClass: __private_var = 1 def __private_method(self): pass def public_method(self): pass print([x for x in dir(MyClass) if not x.startswith('__')])
上面的代碼中,我們過濾掉了以’__’開頭的屬性和方法,輸出了 [‘public_method’]。
3. 查看模塊中的屬性和方法
除了查看自定義對象和Python內置對象的屬性和方法,dir()還可以用於查看模塊中包含的對象:
import math print(dir(math))
運行後我們可以獲得math模塊中的屬性和方法列表。
三、總結
dir()是Python中一個非常強大的工具,正確使用它可以幫助我們更好地理解對象內部的結構,同時也可以幫助我們更快地編寫Python程序。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/247406.html