Menambahkan Kaedah Secara Dinamik pada Objek Python Sedia Ada
Tidak seperti kaedah yang ditentukan kelas, biasanya tidak digalakkan untuk menambah kaedah pada objek sedia ada dalam Python. Walau bagaimanapun, terdapat senario di mana ini mungkin perlu.
Memahami Fungsi dan Kaedah Terikat
Dalam Python, fungsi adalah berbeza daripada kaedah terikat. Kaedah terikat dikaitkan dengan contoh dan lulus sebagai hujah pertama kepada kaedah. Fungsi, sebaliknya, tidak terikat.
Mengubah Suai Atribut Kelas
Anda boleh menambah kaedah pada kelas dengan mengubah takrifnya:
class A: def foo(self): print("foo") A.fooFighters = fooFighters # Attach the fooFighters function as a method
Ini akan mengemas kini semua kejadian kelas A, termasuk yang sedia ada.
Melampirkan Kaedah kepada Kejadian
Untuk melampirkan kaedah pada tika tertentu, anda boleh menggunakan jenis.Fungsi KaedahType:
import types a.barFighters = types.MethodType(barFighters, a) # Bind the barFighters function to instance a
Ini memastikan kaedah diikat dengan betul pada tika .
Keterbatasan
Sementara adalah mungkin untuk menambahkan kaedah secara dinamik pada kejadian, terdapat pengehadan:
Alternatif
Daripada menambah kaedah terus pada objek, pertimbangkan alternatif berikut:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menambah Kaedah Secara Dinamik pada Objek Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!