1. 什麼是 Python 的 dir()
函數?
在學習 Python 的過程中,dir()
函數是一個能提升開發效率的重要工具。使用這個函數可以輕鬆列出物件所擁有的屬性與方法。本文將詳細說明 Python 的 dir()
函數,從基本用法到進階範例與注意事項。
在使用 Python 進行開發時,「可以使用哪些屬性與方法」一目了然,對初學者尤其有幫助。透過具體範例學習,幫助你快速提升程式技能。
2. dir()
函數的基本用法【Python dir 使用教學】
什麼是 dir()
函數?
dir()
函數是 Python 的內建函數,會以列表形式返回指定物件的屬性(variables)與方法(functions)。如果沒有指定參數,則會返回目前作用域中已定義的名稱。
基本語法
dir([object])
- object(可選): 想要查詢其屬性的物件。如果未指定,將返回目前作用域內的名稱。
不帶參數的情況
# 取得目前作用域中的名稱
print(dir())
執行結果會以列表形式顯示當前作用域中可用的變數與函數。
帶參數的情況
可以查看物件所包含的屬性與方法。
my_list = [1, 2, 3]
print(dir(my_list))
輸出範例:
['__add__', '__class__', '__contains__', ..., 'append', 'clear', 'copy']
這個例子中,會列出列表類別所擁有的所有方法。

3. dir()
函數的使用方法【適合初學者】
dir()
函數對於剛接觸 Python 的初學者來說,是一個非常實用的工具,能幫助你快速理解新物件或資料型態的特性。透過以下範例來學習基本用法吧!
列表(list)物件的使用範例
讓我們來看看列表物件有哪些屬性與方法。
numbers = [1, 2, 3]
print(dir(numbers))
像是 append
、clear
等方法,都是在操作列表時經常會用到的功能。
字典(dict)物件的使用範例
也可以用在字典物件上,來查看其擁有的方法。
my_dict = {"key": "value"}
print(dir(my_dict))
透過 dir()
,可以快速確認各種物件的特性,對實際寫程式時非常有幫助。
4. dir()
函數的進階應用【適合中階使用者】
dir()
函數在中階開發者的情境中也非常有用,特別是在探索自訂類別(class)或外部模組時非常實用。
在自訂類別中活用 dir()
可以查看自己定義的類別物件所擁有的屬性與方法。
class MyClass:
def my_method(self):
pass
obj = MyClass()
print(dir(obj))
輸出結果中會包含 my_method
,此外也會列出像是 __class__
、__dir__
等 Python 內建的屬性。
自訂 __dir__()
方法
你也可以自訂 dir()
的輸出內容,讓它只顯示你想要公開的資訊。
class CustomClass:
def __dir__(self):
return ['custom_attribute']
obj = CustomClass()
print(dir(obj))
透過這種方式,可以讓輸出結果更精簡,僅顯示必要資訊。

5. 在除錯時活用 dir()
在開發過程中進行除錯時,dir()
函數能發揮極大的幫助。特別是在想要快速了解外部模組或新類別的屬性時非常有用。
探索外部模組
例如,可以列出 math
模組中所有可用的函數。
import math
print(dir(math))
這樣一來,像是 sin
、cos
等可用函數就能一目了然。
除錯時的使用案例
當發生錯誤時,透過確認物件擁有哪些方法,有助於找出問題所在並加以解決。
6. dir()
函數與其他函數的比較【Python 開發者必看】
與 help()
函數的比較
help()
: 提供物件的詳細說明文件。dir()
: 列出物件的屬性與方法。
將這兩個函數搭配使用,可以達到更好的效果。
print(help(str))
print(dir(str))
與 vars()
函數的差異
vars()
: 以字典形式返回物件的屬性名稱與其對應的值。dir()
: 返回屬性名稱的列表。

7. 使用時的注意事項
dir()
的輸出內容不一定包含所有屬性與方法。- 以
_
或__
開頭的隱藏屬性,通常是提供給開發者使用的。 - 建議將
dir()
作為輔助工具,幫助你更深入理解 Python 物件的結構與特性。
8. 精通 Python 的 dir()
函數吧!
在本文中,我們介紹了 Python 的 dir()
函數,包含其基本使用方式、進階應用以及注意事項。善用這個函數,可以幫助你更有效率地理解物件的特性,提升開發速度。
接下來,不妨親自動手試試 dir()
吧!如果有任何問題或心得,歡迎在留言區與我們分享。