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

Bagaimanakah Saya Boleh Melaksanakan Berbilang Pembina dalam Python?

Linda Hamilton
Linda Hamiltonasal
2024-11-29 20:35:17976semak imbas

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

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))

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

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!

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