博客 / 詳情

返回

Python 的內置函數 dir

Python 的內置函數 dir() 是一個非常有用的工具,它用於返回指定對象的有效屬性列表。當不帶參數調用時,dir() 會返回當前局部作用域中的名稱列表;當帶參數調用時,它會嘗試返回該對象的有效屬性列表。

基本語法

dir([object])
  • 可選參數 object:可以是模塊、類、實例或任何具有 __dict__ 屬性的對象

主要功能

  1. 無參數調用

    • 返回當前局部作用域中的名稱列表
    • 示例:

      x = 1
      print(dir())  # 會顯示包含 'x' 的名稱列表
  2. 有參數調用

    • 返回對象的屬性和方法列表
    • 對於不同類型的對象,返回的內容會有所不同:

      • 模塊對象:返回模塊定義的名稱
      • 類對象:返回類屬性及其基類屬性
      • 實例對象:返回實例屬性、類屬性和基類屬性

使用示例

  1. 查看模塊內容:

    import math
    print(dir(math))  # 顯示 math 模塊的所有函數和常量
  2. 查看類成員:

    class MyClass:
        def __init__(self):
            self.x = 1
        def method(self):
            pass
    
    print(dir(MyClass))  # 顯示類屬性和方法
  3. 查看實例屬性:

    obj = MyClass()
    print(dir(obj))  # 顯示實例屬性和可用的方法

注意事項

  1. dir() 的結果是動態的,會根據對象的當前狀態而變化
  2. 結果列表是字母順序排序的
  3. 不是所有返回的名稱都是可以直接使用的屬性,有些可能是特殊方法或屬性
  4. 對於用户定義的對象,dir() 會調用對象的 __dir__() 方法(如果存在)

help() 的配合使用

dir() 通常與 help() 函數配合使用,先用 dir() 找到感興趣的屬性,然後用 help() 查看詳細文檔:

import os
print(dir(os))  # 查看 os 模塊的內容
help(os.path)  # 查看 os.path 的具體幫助

應用場景

  1. 交互式探索:在 Python shell 或 IPython 中快速查看對象結構
  2. 調試:檢查對象是否具有預期的屬性
  3. 元編程:動態獲取和操作對象屬性
  4. 學習新模塊:快速瞭解模塊提供的功能

dir() 是 Python 自省(introspection)功能的重要組成部分,為開發者提供了強大的對象探索能力。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.