色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 自省和反射

錢浩然2年前7瀏覽0評論

Python是一種強大的編程語言,它支持自省和反射功能。自省是指Python可以查詢對象的屬性和方法,而反射則是指Python可以動態地修改或操作對象的屬性和方法。

class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
dog = Dog("Tom", 3)
# 自省
print(hasattr(dog, "name")) # True
print(getattr(dog, "name")) # Tom
print(hasattr(dog, "gender")) # False
# 反射
setattr(dog, "age", 4)
print(dog.age) # 4
# 動態創建屬性和方法
setattr(dog, "gender", "male")
def bark(self):
print("汪汪汪")
setattr(Dog, "bark", bark)
dog.bark() # 汪汪汪

在上面的例子中,我們定義了一個Dog類。我們可以使用hasattr函數查詢dog對象是否有name、gender屬性,使用getattr函數獲取name屬性的值。我們可以使用setattr函數設置dog對象的age屬性,也可以使用setattr函數動態地給dog類動態地添加屬性和方法。

自省和反射可以使代碼更加靈活,使我們可以在運行時動態地根據需要來操作對象的屬性和方法。