Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Skop Pembolehubah Berfungsi dalam Kelas Python?

Bagaimanakah Skop Pembolehubah Berfungsi dalam Kelas Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-17 21:58:01893semak imbas

How Do Variable Scopes Work in Python Classes?

Memahami Skop Pembolehubah dalam Kelas Python

Mengisytiharkan pembolehubah dalam kelas Python boleh mengelirukan pada mulanya. Artikel ini bertujuan untuk menjelaskan skop dan nuansa berbeza yang dikaitkan dengan perisytiharan berubah dalam konteks kelas.

Peraturan Skop Am:

  • Pembolehubah Kelas: Mengisytiharkan fungsi luar dalam kelas, pembolehubah ini boleh diakses oleh semua kelas fungsi.
  • Pembolehubah Tempatan: Diisytiharkan dalam fungsi dalam kelas, pembolehubah ini hanya boleh diakses dalam fungsi itu.
  • Pembolehubah Contoh: Diisytiharkan menggunakan self.(nama pembolehubah) di dalam fungsi dalam kelas, pembolehubah ini boleh diakses oleh semua kelas fungsi.

Pembolehubah Instance lwn. Pembolehubah Global:

Pembolehubah kejadian (diisytiharkan menggunakan diri.(nama pembolehubah)) berkelakuan berbeza daripada pembolehubah global (diisytiharkan di luar sebarang fungsi atau kelas). Walaupun semua yang diisytiharkan dalam kelas secara teknikalnya awam, pembolehubah ins terikat pada contoh objek individu.

Contoh:

class Test:
    a = None  # Class variable
    b = None  # Class variable

    def __init__(self, a):
        self.a = a  # Instance variable

Dalam contoh ini, pembolehubah kelas a dan b boleh diakses oleh semua fungsi kelas. Walau bagaimanapun, pembolehubah contoh self.a adalah khusus untuk setiap contoh objek. Menetapkan self.a dalam __init__ tidak menjejaskan pembolehubah kelas a.

Pembolehubah Dilindungi:

Walaupun Python tidak mentakrifkan pembolehubah peribadi atau dilindungi secara eksplisit, pembolehubah diawali dengan garis bawah (_) dianggap dilindungi. Secara teknikal, mereka masih boleh diakses di luar kelas, tetapi mengubah nama mereka tidak menggalakkan akses.

Pembolehubah Peribadi:

Pembolehubah yang diawali dengan garis bawah berganda (__) dianggap peribadi. Nama mereka rosak untuk menyukarkan akses terus di luar kelas.

Nuansa Tambahan:

  • Pembolehubah yang ditetapkan dalam fungsi tempatan tetapi di luar diri.( nama pembolehubah) tidak tersedia di luar fungsi itu.
  • Pembolehubah dilindungi dan persendirian kalis kusut tidak boleh diakses sepenuhnya di luar kelas tetapi tidak boleh dipercayai untuk enkapsulasi sebenar.

Atas ialah kandungan terperinci Bagaimanakah Skop Pembolehubah Berfungsi dalam Kelas 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