Artikel ini menjawab empat soalan utama mengenai penambahan dinamik kaedah kepada objek Python. Kami akan meneroka pelbagai pendekatan dan amalan terbaik. Ini dicapai terutamanya melalui menggunakan fungsi
. di bawah nama setattr()
. Sekarang setattr()
berkelakuan seolah -olah ia mempunyai kaedah bernama
itu sendiri; Kaedah ini hanya ditambah kepada contoh tertentu
. Menggunakanclass MyClass: def __init__(self, name): self.name = name obj = MyClass("Example") def new_method(self): print(f"Hello from the dynamically added method! My name is {self.name}") setattr(obj, 'dynamic_method', new_method) obj.dynamic_method() # Output: Hello from the dynamically added method! My name is Example
new_method
tidak mengubah definisi kelas; Kaedah ini hanya ditambah kepada contoh tertentu. Satu lagi contoh setattr(obj, 'dynamic_method', new_method)
yang dibuat kemudian tidak akan mempunyai kaedah obj
. Terlalu banyak ia boleh membawa kepada kod yang lebih sukar untuk difahami dan dikekalkan. Berikut adalah beberapa amalan terbaik: dynamic_method
Atas ialah kandungan terperinci Bagaimana cara menambahkan kaedah secara dinamik ke objek dalam python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!