Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan fungsi __call__() dalam Python untuk menjadikan objek boleh dipanggil

Cara menggunakan fungsi __call__() dalam Python untuk menjadikan objek boleh dipanggil

WBOY
WBOYasal
2023-08-22 10:36:261279semak imbas

Cara menggunakan fungsi __call__() dalam Python untuk menjadikan objek boleh dipanggil

Fungsi __call__() dalam Python ialah kaedah khas yang membolehkan objek dipanggil seperti fungsi. Apabila objek dipanggil, Python secara automatik mencari dan memanggil kaedah __call__() objek. Kaedah

__call__() boleh digunakan untuk menentukan sama ada tika kelas boleh digunakan sebagai fungsi dan kelakuannya. Dengan melaksanakan kaedah __call__(), kita boleh menyesuaikan gelagat panggilan objek.

Berikut ialah contoh mudah yang menunjukkan cara menggunakan fungsi __call__() dalam Python untuk menjadikan objek boleh dipanggil:

class Counter:
    def __init__(self):
        self.count = 0
        
    def __call__(self):
        self.count += 1
        print("调用次数:", self.count)
        
# 创建一个Counter对象
counter = Counter()

# 调用对象,会触发__call__()方法
counter()  # 输出:调用次数: 1
counter()  # 输出:调用次数: 2
counter()  # 输出:调用次数: 3

Dalam kod di atas, kami telah menentukan kelas Counter yang mengandungi kiraan pembolehubah contoh dan __call__() kaedah. Dalam kaedah __call__(), kami menambah kiraan sebanyak 1 dan mencetak bilangan panggilan.

Dengan mencipta objek Counter dan memanggilnya, kita dapat melihat bahawa setiap kali kaedah __call__() dipanggil, pembilang ditambah dan bilangan panggilan dikeluarkan.

Selain contoh di atas, kita juga boleh memanfaatkan fungsi __call__() selanjutnya. Sebagai contoh, kita boleh mentakrifkan berbilang kaedah __call__() dalam kelas untuk mencapai gelagat panggilan yang berbeza.

class Adder:
    def __init__(self, a):
        self.a = a
        
    def __call__(self, b):
        return self.a + b

# 创建一个Adder对象
adder = Adder(5)

# 调用对象,会在__call__()方法中执行相应的操作
result = adder(10)
print(result)  # 输出:15

result = adder(20)
print(result)  # 输出:25

Dalam kod di atas, kami menentukan kelas Penambah, yang mengandungi kaedah __call__(). Dalam kaedah __call__(), kami melaksanakan operasi menambah dua nombor.

Dengan mencipta objek Penambah dan memanggilnya sebagai fungsi, kita boleh mendapatkan hasil penjumlahan yang sepadan.

Ringkasnya, fungsi __call__() dalam Python membenarkan objek dipanggil seperti fungsi. Kita boleh menyesuaikan gelagat panggilan objek dan melaksanakan fungsi yang lebih kaya dengan melaksanakan kaedah __call__(). Ini adalah ciri berkuasa pengaturcaraan berorientasikan objek dalam Python.

Atas ialah kandungan terperinci Cara menggunakan fungsi __call__() dalam Python untuk menjadikan objek boleh dipanggil. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn