使用自訂方法擴充內建Python 類型
在Python 中,內建類型(例如dict 和str)是不可變的,不可變的不允許直接添加方法。但是,可以透過對內建類型進行子類化並在全域命名空間中取代它來實現類似的功能。
例如,假設您想要在 dict 類型中加入 helloWorld() 方法。雖然直接修改是不可行的,但您可以對dict 進行子類化並在子類中定義方法:
class MyDict(dict): def helloWorld(self): print("Hello world!")
要將此子類應用於將來的所有詞典,請替換內置命名空間中的原始dict 類型:
import __builtin__ __builtin__.dict = MyDict
現在,創建的任何字典都將是MyDict 類型並具有helloWorld() 方法:
my_dict = {} my_dict.helloWorld() # Prints "Hello world!"
但是,請注意透過文字語法語法:建立的物件(例如, {}) 仍將是普通字典類型,並且不會具有自訂方法:
vanilla_dict = {} vanilla_dict.helloWorld() # AttributeError: 'dict' object has no attribute 'helloWorld'
此方法提供了一種使用自訂方法擴充內建類型的方法,但它並非沒有限制。例如,文字語法物件仍然是普通的,子類別不會繼承新增到父類型中的任何自訂屬性或方法。
以上是如何使用自訂方法擴展 Python 的內建類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!