Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Melaksanakan Berbilang Pembina dalam Python?

Bagaimanakah Saya Boleh Melaksanakan Berbilang Pembina dalam Python?

Linda Hamilton
Lepaskan: 2024-11-29 20:35:17
asal
900 orang telah melayarinya

How Can I Implement Multiple Constructors in Python?

Melaksanakan Berbilang Pembina dalam Python dengan Anggun dan Keanggunan

Walaupun Python mungkin tidak menyokong berbilang fungsi init secara eksplisit dalam sesebuah kelas, terdapat pendekatan alternatif untuk mencapai fungsi ini secara bersih dan pythonic cara.

Untuk menggambarkan masalah, pertimbangkan kelas Keju dengan sifat bilangan_lubang. Kami ingin mencipta kejadian menggunakan sama ada kiraan lubang yang ditentukan atau nilai rawak.

Pendekatan Argumen Lalai

Satu pendekatan melibatkan penggunaan argumen lalai untuk pembina. Jika tiada hujah diberikan, kiraan lubang menjadi lalai kepada 0, mewakili keju pepejal. Walau bagaimanapun, ini tidak membenarkan berbilang pembina yang berbeza.

class Cheese:
    def __init__(self, num_holes=0):
        if num_holes == 0:
            # Randomize number_of_holes
        else:
            number_of_holes = num_holes
Salin selepas log masuk

Pendekatan Kaedah Kilang

Penyelesaian yang lebih elegan menggunakan kaedah kelas, dikenali sebagai kaedah kilang. Kaedah ini berfungsi sebagai pembina alternatif, membenarkan berbilang "pembina" bebas dengan logik permulaan yang berbeza-beza.

Untuk kelas Keju, kita boleh mencipta kaedah kelas untuk menjana keju dengan tahap kelubang yang berbeza-beza:

class Cheese(object):
    def __init__(self, num_holes=0):
        self.number_of_holes = num_holes

    @classmethod
    def random(cls):
        return cls(randint(0, 100))

    @classmethod
    def slightly_holey(cls):
        return cls(randint(0, 33))

    @classmethod
    def very_holey(cls):
        return cls(randint(66, 100))
Salin selepas log masuk

Kini, kejadian boleh dibuat menggunakan kaedah kelas ini:

gouda = Cheese()  # Creates a solid cheese
emmentaler = Cheese.random()  # Creates a cheese with a random hole count
leerdammer = Cheese.slightly_holey()  # Creates a cheese with a slightly holey structure
Salin selepas log masuk

Pendekatan ini menggalakkan kebolehbacaan kod, fleksibiliti, dan pematuhan kepada prinsip pythonic. Kaedah kilang menyediakan cara yang jelas dan teratur untuk menentukan berbilang pembina dalam satu kelas, memenuhi senario permulaan yang berbeza.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Berbilang Pembina dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan