如何在 Python 中使用反射?

如何在 Python 中使用反射?

反射的基本概念

反射是一種在程式中讓程式本身執行其自身碼的過程。在 Python 中,可以使用反射來讓程式在 runtime 執行其自身碼。

步驟使用反射

  1. 創建一個 reflexión物件:使用 type()inspect 模組創建一個 reflexión物件。
  2. 使用 __dict__ 屬性訪問物件屬性:反射物件的 __dict__ 屬性包含了物件的屬性名稱和值。可以使用 __dict__ 訪問屬性。
  3. 使用 exec() 執行反射物件的屬性:使用 exec() 執行反射物件的屬性。
  4. 使用 eval() 執行反射物件的語法:使用 eval() 執行反射物件的語法。

範例

import inspect

class Person:
    name = "John"
    age = 30

def print_person_info(person):
    print("Name:", person.name)
    print("Age:", person.age)

# 創建一個 reflexión物件
person_type = type(Person)

# 執行 `print_person_info()` 方法
print_person_info(person_type)

# 執行 `print_person_info()` 方法
print_person_info(Person)

輸出

Name: John
Age: 30
Name: John
Age: 30

注意事項

*反射只能執行對實體物件的屬性和方法。 *反射會創建一個新的函式 scope,因此需要使用 execeval 執行反射後的方法。 *反射可以被用來執行任何 Python 語法,包括函式、類別和元件。

相似内容
更多>