Pembina dalam Python

WBOY
WBOYke hadapan
2023-09-02 16:29:202201semak imbas

Pembina dalam Python

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.

tatabahasa

class A(): 
   def __init__(self):
      pass

Contoh

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

Output

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

Pembina lalai tidak ditakrifkan oleh pengguna, Python sendiri mencipta pembina semasa penyusunan atur cara. Ia tidak melakukan apa-apa tugas tetapi memulakan objek.

Contoh

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

Output

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

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.

Contoh

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

Output

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

Pembina bukan parametrik tidak menerima sebarang parameter kecuali diri sendiri. Ia berguna apabila anda ingin memanipulasi nilai sifat contoh.

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

Output

player1 results
2
2
p2 results
0
Objek

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam