Bagaimana Python Mengendalikan Kaedah Lebih Muatan?

DDD
Lepaskan: 2024-10-22 21:35:30
asal
998 orang telah melayarinya

How Does Python Handle Method Overloading?

Metode Overloading dalam Python

Dalam Python, kaedah overloading berbeza daripada kaedah overriding. Untuk melebihkan kaedah, anda boleh menggunakan satu fungsi dengan nilai argumen lalai.

<code class="python">class A:
    def stackoverflow(self, i='some_default_value'):
        print('only method')

ob = A()
ob.stackoverflow(2)  # prints 'only method'
ob.stackoverflow()   # prints 'only method' with 'some_default_value'</code>
Salin selepas log masuk

Walau bagaimanapun, Python 3.4 memperkenalkan fungsi generik penghantaran tunggal untuk menyediakan mekanisme lebihan muatan kaedah yang lebih komprehensif.

<code class="python">from functools import singledispatch

@singledispatch
def fun(arg, verbose=False):
    print(arg)

@fun.register(int)
def _(arg, verbose=False):
    print(arg)

@fun.register(list)
def _(arg, verbose=False):
    for i, elem in enumerate(arg):
        print(i, elem)</code>
Salin selepas log masuk

Menggunakan pendekatan ini, anda boleh mengendalikan jenis hujah yang berbeza dengan pelaksanaan tertentu sambil mengekalkan satu fungsi.

Atas ialah kandungan terperinci Bagaimana Python Mengendalikan Kaedah Lebih Muatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!