Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pembolehubah Kelas atau Pembolehubah Instance: Mana yang Terbaik untuk Kelas Singleton dalam Python?

Pembolehubah Kelas atau Pembolehubah Instance: Mana yang Terbaik untuk Kelas Singleton dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-23 01:20:11739semak imbas

Class Variables or Instance Variables: Which is Best for a Singleton Class in Python?

Pembolehubah Kelas lwn. Pembolehubah Contoh untuk Kelas Satu Contoh

Apabila membuat kelas Python dengan hanya satu contoh yang diperlukan, anda mungkin menghadapi dilema tempat untuk menyimpan atribut kelas: dalam pembolehubah kelas atau pembolehubah contoh. Kedua-dua pilihan mempunyai kebaikan dan keburukan mereka.

Pembolehubah Instance

Pembolehubah Instance adalah khusus untuk setiap tika kelas. Ia ditakrifkan dalam kaedah __init__, seperti dalam contoh kod kedua yang disediakan:

class MyController(Controller):

  def __init__(self):
    self.path = "something/"
    self.children = [AController, BController]

  def action(self, request):
    pass

Kebaikan:

  • Akses lebih pantas kerana tidak perlu mewarisi atribut daripada kelas.
  • Tiada kekeliruan mengenai atribut yang mana contoh.

Keburukan:

  • Atribut pendua untuk setiap tika, yang boleh membazir jika atribut itu besar atau kompleks.

Kelas Pembolehubah

Pembolehubah kelas, sebaliknya, dikongsi antara semua kejadian kelas. Ia ditakrifkan di luar kaedah __init__, seperti dalam contoh kod pertama yang disediakan:

class MyController(Controller):

  path = "something/"
  children = [AController, BController]

  def action(self, request):
    pass

Kebaikan:

  • Sumber kebenaran tunggal untuk atribut, mengurangkan kemungkinan ralat dan ketidakkonsistenan.
  • Tiada overhed memori yang dikaitkan dengan pendua atribut.

Keburukan:

  • Akses yang perlahan sedikit disebabkan oleh tahap pewarisan tambahan.
  • Potensi kekeliruan jika keadaan memerlukan mempunyai nilai yang berbeza untuk perkara yang sama atribut.

Pengesyoran

Jika anda tahu dengan pasti bahawa anda hanya akan mempunyai satu tika kelas, biasanya disyorkan untuk menggunakan pembolehubah contoh. Ini menyediakan akses yang lebih pantas sedikit dan menghapuskan sebarang kemungkinan kekeliruan atau masalah dengan atribut pendua.

Atas ialah kandungan terperinci Pembolehubah Kelas atau Pembolehubah Instance: Mana yang Terbaik untuk Kelas Singleton 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