Dalam Python, setiap kelas mempunyai pembina, iaitu kaedah khas yang ditentukan di dalam kelas. Pembina/pemula akan dipanggil secara automatik apabila objek baharu dicipta untuk kelas. Apabila objek dimulakan, pembina memberikan nilai kepada ahli data dalam kelas.
Tidak perlu mentakrifkan pembina secara eksplisit. Tetapi untuk mencipta pembina, kita perlu mengikut peraturan berikut -
Untuk kelas, ia hanya membenarkan satu pembina.
Nama pembina mestilah __init__.
Pembina mesti ditakrifkan menggunakan sifat contoh (hanya nyatakan kata kunci diri sebagai hujah pertama).
Ia tidak boleh mengembalikan sebarang nilai kecuali Tiada.
class A(): def __init__(self): pass
Pertimbangkan contoh di bawah dan fahami cara pembina berfungsi.
class SampleClass(): def __init__(self): print("it a sample class constructor") # creating an object of the class A = SampleClass()
it a sample class constructor
Dalam blok di atas, objek A dicipta untuk SampleClass(), dan untuk contoh ini, kaedah __init__(self) dilaksanakan secara automatik. Dengan cara ini ia menunjukkan pernyataan pembina.
Pembina terbahagi kepada tiga jenis.
Pembina lalai
Pembina berparameter
Pembina bukan parametrik
Pembina lalai tidak ditakrifkan oleh pengguna, Python sendiri mencipta pembina semasa penyusunan atur cara. Ia tidak melakukan apa-apa tugas tetapi memulakan objek.
Python menjana pembina kosong tanpa kod di dalamnya. Lihat contoh di bawah.
class A(): check_value = 1000 # a method def value(self): print(self.check_value) # creating an object of the class obj = A() # calling the instance method using the object obj.value()
1000
Mari kita gunakan fungsi dir() terbina dalam Python untuk mengesahkan pembina kelas A.
dir(A) Output: ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'check_value', 'value']
python dir() Fungsi mengembalikan senarai semua sifat dan kaedah objek yang ditentukan. Dalam senarai di atas kita dapat melihat bahawa pembina lalai __init__ dicipta untuk objek A.
Pembina berparameter menerima satu atau lebih parameter dan sendiri. Ia berguna apabila anda ingin mencipta objek dengan nilai harta tersuai. Pembina berparameter membolehkan kami menentukan nilai sifat objek semasa mencipta objek.
Mari lihat contoh kelas dengan pembina berparameter
class Family: members = 10 def __init__(self, count): self.members = count def disply(self): print("Number of members is", self.members) joy_family = Family(25) joy_family.disply()
Number of members is 25
Di sini objek siri Joy dicipta menggunakan nilai tersuai 25 dan bukannya menggunakan nilai harta ahli lalai 10. Dan nilai itu tersedia untuk contoh ini kerana ia diperuntukkan kepada harta self.members.
Pembina bukan parametrik tidak menerima sebarang parameter kecuali diri sendiri. Ia berguna apabila anda ingin memanipulasi nilai sifat contoh.
Mari kita lihat contoh pembina bukan parametrik.
class Player: def __init__(self): self.position = 0 # Add a move() method with steps parameter def move(self, steps): self.position = steps print(self.position) def result(self): print(self.position) player1 = Player() print('player1 results') player1.move(2) player1.result() print('p2 results') p2 = Player() p2.result()
player1 results 2 2 p2 results 0
player1 mengendalikan sifat "kedudukan" dengan menggunakan kaedah move(). Dan objek p2 mengakses nilai lalai bagi sifat "kedudukan".
Atas ialah kandungan terperinci Pembina dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!