Jenis variabel dalam python oops

Dalam pemrograman berorientasi objek, saat kami mendesain kelas, kami menggunakan variabel instan dan variabel kelas

Di Kelas, atribut dapat didefinisikan menjadi dua bagian

  • Variabel instan. Jika nilai variabel bervariasi dari objek ke objek, maka variabel tersebut disebut variabel instan
  • Variabel Kelas. Variabel kelas adalah variabel yang dideklarasikan di dalam kelas, tetapi di luar metode instance apa pun atau metode Emma 10 ABC School Jessa 20 ABC School 9 

Setelah membaca artikel ini, Anda akan belajar

  • Cara membuat dan mengakses variabel kelas
  • Memodifikasi nilai variabel kelas
  • Variabel instan vs. variabel kelas
  • Perilaku variabel kelas dalam pewarisan

Daftar isi

Apa itu Variabel Kelas di Python?

Jika nilai variabel tidak bervariasi dari satu objek ke objek lainnya, jenis variabel seperti itu disebut variabel kelas atau variabel statis

Variabel kelas dibagi oleh semua instance kelas. Tidak seperti variabel instan, nilai variabel kelas tidak bervariasi dari objek ke objek,

Dalam Python, variabel Kelas dideklarasikan saat kelas sedang dibangun. Mereka tidak didefinisikan di dalam metode kelas apa pun karena ini hanya satu salinan dari variabel statis yang akan dibuat dan dibagikan di antara semua objek kelas

Misalnya, di kelas Siswa, kita dapat memiliki variabel instan yang berbeda seperti nama dan nomor rol karena setiap nama siswa dan nomor rol berbeda.

Namun, jika kita ingin memasukkan nama sekolah ke dalam kelas siswa, kita harus menggunakan variabel kelas daripada variabel instan karena nama sekolah sama untuk semua siswa. Jadi alih-alih menjaga salinan terpisah di setiap objek, kita dapat membuat variabel kelas yang akan menyimpan nama sekolah sehingga semua siswa (objek) dapat membagikannya

Kita dapat menambahkan sejumlah variabel kelas dalam sebuah kelas

Memahami Variabel Kelas

Buat Variabel Kelas

Variabel kelas dideklarasikan di dalam kelas, tetapi di luar metode instance atau metode Emma 10 ABC School Jessa 20 ABC School 9 apa pun

Dengan konvensi, biasanya ditempatkan tepat di bawah header kelas dan sebelum metode konstruktor dan metode lainnya

Contoh

class Student: # Class variable school_name = 'ABC School ' def __init__(self, name, roll_no): self.name = name self.roll_no = roll_no # create first object s1 = Student('Emma', 10) print(s1.name, s1.roll_no, Student.school_name) # access class variable # create second object s2 = Student('Jessa', 20) # access class variable print(s2.name, s2.roll_no, Student.school_name)

Keluaran

Emma 10 ABC School Jessa 20 ABC School

Pada contoh di atas, kita membuat variabel kelas class Student: # Class variable school_name = 'ABC School ' # constructor def __init__(self, name): self.name = name # access class variable inside constructor using self print(self.school_name) # access using class name print(Student.school_name) # create Object s1 = Student('Emma')1 dan mengaksesnya menggunakan objek dan nama kelas

Catatan. Seperti variabel biasa, variabel kelas dapat menyimpan data jenis apa pun. Kita bisa menggunakan daftar Python, Tuple Python, dan kamus Python sebagai variabel kelas

Mengakses Variabel Kelas

Kita dapat mengakses variabel statis baik dengan nama kelas atau referensi objek, tetapi disarankan untuk menggunakan nama kelas

Di Python, kita bisa mengakses variabel kelas di tempat-tempat berikut

  • Akses di dalam konstruktor dengan menggunakan parameter class Student: # Class variable school_name = 'ABC School ' # constructor def __init__(self, name): self.name = name # access class variable inside constructor using self print(self.school_name) # access using class name print(Student.school_name) # create Object s1 = Student('Emma')2 atau nama kelas
  • Akses variabel kelas di dalam metode instance dengan menggunakan salah satu dari nama kelas
  • Akses dari luar kelas dengan menggunakan referensi objek atau nama kelas

Contoh 1. Akses Variabel Kelas di konstruktor

class Student: # Class variable school_name = 'ABC School ' # constructor def __init__(self, name): self.name = name # access class variable inside constructor using self print(self.school_name) # access using class name print(Student.school_name) # create Object s1 = Student('Emma')_

Keluaran

ABC School ABC School

Contoh 2. Mengakses Variabel Kelas dalam metode Instance dan di luar kelas

class Student: # Class variable school_name = 'ABC School ' # constructor def __init__(self, name, roll_no): self.name = name self.roll_no = roll_no # Instance method def show(self): print('Inside instance method') # access using self print(self.name, self.roll_no, self.school_name) # access using class name print(Student.school_name) # create Object s1 = Student('Emma', 10) s1.show() print('Outside class') # access class variable outside class # access using object reference print(s1.school_name) # access using class name print(Student.school_name) _

Keluaran

Inside instance method Emma 10 ABC School ABC School Outside class ABC School ABC School _

Dalam contoh ini, kami mengakses variabel kelas class Student: # Class variable school_name = 'ABC School ' # constructor def __init__(self, name): self.name = name # access class variable inside constructor using self print(self.school_name) # access using class name print(Student.school_name) # create Object s1 = Student('Emma')1 menggunakan nama kelas dan kata kunci class Student: # Class variable school_name = 'ABC School ' # constructor def __init__(self, name): self.name = name # access class variable inside constructor using self print(self.school_name) # access using class name print(Student.school_name) # create Object s1 = Student('Emma')2 di dalam metode

Modifikasi Variabel Kelas

Umumnya, kami menetapkan nilai ke variabel kelas di dalam deklarasi kelas. Namun, kita dapat mengubah nilai variabel kelas baik di dalam kelas maupun di luar kelas

Catatan. Kita harus mengubah nilai variabel kelas menggunakan nama kelas saja

Contoh

class Student: # Class variable school_name = 'ABC School ' # constructor def __init__(self, name, roll_no): self.name = name self.roll_no = roll_no # Instance method def show(self): print(self.name, self.roll_no, Student.school_name) # create Object s1 = Student('Emma', 10) print('Before') s1.show() # Modify class variable Student.school_name = 'XYZ School' print('After') s1.show()

Keluaran

Before Emma 10 ABC School After Emma 10 XYZ School

Catatan

Praktik terbaik adalah menggunakan nama kelas untuk mengubah nilai variabel kelas. Karena jika kita mencoba mengubah nilai variabel kelas dengan menggunakan objek, variabel instan baru akan dibuat untuk objek tersebut, yang membayangi variabel kelas.

Contoh

class Student: # Class variable school_name = 'ABC School ' # constructor def __init__(self, name, roll_no): self.name = name self.roll_no = roll_no # create Objects s1 = Student('Emma', 10) s2 = Student('Jessa', 20) print('Before') print(s1.name, s1.roll_no, s1.school_name) print(s2.name, s2.roll_no, s2.school_name) # Modify class variable using object reference s1.school_name = 'PQR School' print('After') print(s1.name, s1.roll_no, s1.school_name) print(s2.name, s2.roll_no, s2.school_name)

Keluaran

Before Emma 10 ABC School Jessa 20 ABC School After Emma 10 PQR School Jessa 20 ABC School

Variabel instan baru dibuat untuk objek s1, dan variabel ini membayangi variabel kelas. Jadi selalu gunakan nama kelas untuk memodifikasi variabel kelas

Variabel Kelas vs variabel Instance

Tabel berikut menunjukkan perbedaan antara variabel instan dan variabel kelas

Dalam Python, properti dapat didefinisikan menjadi dua bagian

  • Variabel instan. Nilai variabel instan bervariasi dari objek ke objek. Variabel instan tidak dibagikan oleh objek. Setiap objek memiliki salinan atribut instancenya sendiri
  • Variabel Kelas. Variabel kelas adalah variabel yang dideklarasikan di dalam kelas, tetapi di luar metode instance apa pun atau metode Emma 10 ABC School Jessa 20 ABC School 9 . Variabel kelas dibagi oleh semua instance kelas

Baca selengkapnya. Variabel Instance di Python dengan Contoh

Instance VariableClass VariableInstance variable tidak dibagi oleh objek. Setiap objek memiliki salinannya sendiri dari variabel instance attributeClass yang digunakan bersama oleh semua instance
Variabel instan dideklarasikan di dalam konstruktor i. e. , metode Emma 10 ABC School Jessa 20 ABC School _9. Variabel kelas dideklarasikan di dalam definisi kelas tetapi di luar metode instan dan konstruktor. Itu akan dibuat ketika sebuah instance dari kelas dibuat. Itu dibuat ketika program mulai dijalankan. Perubahan yang dilakukan pada variabel-variabel ini melalui satu objek tidak akan tercermin di objek lain. Perubahan yang dilakukan pada variabel kelas akan tercermin di semua objek. Variabel Kelas vs. Variabel Instance

Contoh

Mari kita lihat contoh untuk membuat variabel kelas dan variabel instan

Emma 10 ABC School Jessa 20 ABC School 0

Keluaran

Emma 10 ABC School Jessa 20 ABC School _1

Variabel Kelas Dalam Pewarisan

Seperti yang Anda ketahui, hanya satu salinan variabel kelas yang akan dibuat dan dibagikan di antara semua objek kelas itu

Saat kita menggunakan pewarisan, semua variabel dan metode kelas dasar tersedia untuk kelas anak. Dalam kasus seperti itu, Kami juga dapat mengubah nilai variabel kelas kelas induk di kelas anak

Kita dapat menggunakan nama kelas induk atau kelas anak untuk mengubah nilai variabel kelas kelas induk di kelas anak

Contoh

Emma 10 ABC School Jessa 20 ABC School _2

Keluaran

Emma 10 ABC School Jessa 20 ABC School _3

Bagaimana jika kelas anak dan kelas induk memiliki nama variabel kelas yang sama. Dalam hal ini, kelas anak tidak akan mewarisi variabel kelas dari kelas dasar. Jadi disarankan untuk membuat variabel kelas terpisah untuk kelas anak daripada mewarisi variabel kelas dasar

Contoh

Emma 10 ABC School Jessa 20 ABC School _4

Keluaran

Emma 10 ABC School Jessa 20 ABC School 5

Penggunaan Variabel Kelas yang Salah

Dalam Python, kita harus menggunakan variabel kelas dengan benar karena semua objek berbagi salinan yang sama. Jadi, jika salah satu objek mengubah nilai variabel kelas, maka semua objek mulai merujuk ke salinan baru

Misalnya,

Contoh

Emma 10 ABC School Jessa 20 ABC School _6

Keluaran

Emma 10 ABC School Jessa 20 ABC School _7

Dalam contoh di atas, variabel instan class Student: # Class variable school_name = 'ABC School ' # constructor def __init__(self, name): self.name = name # access class variable inside constructor using self print(self.school_name) # access using class name print(Student.school_name) # create Object s1 = Student('Emma')_7 unik untuk setiap pemain. Variabel kelas class Student: # Class variable school_name = 'ABC School ' # constructor def __init__(self, name): self.name = name # access class variable inside constructor using self print(self.school_name) # access using class name print(Student.school_name) # create Object s1 = Student('Emma')8 dan class Student: # Class variable school_name = 'ABC School ' # constructor def __init__(self, name): self.name = name # access class variable inside constructor using self print(self.school_name) # access using class name print(Student.school_name) # create Object s1 = Student('Emma')9 dapat diakses dan dimodifikasi oleh objek apa pun

Karena kedua objek memodifikasi variabel kelas, variabel instan baru dibuat untuk objek tertentu dengan nama yang sama dengan variabel kelas, yang membayangi variabel kelas.

Dalam kasus kami, untuk objek ABC School ABC School0 variabel instan baru ABC School ABC School1 dibuat, dan untuk objek ABC School ABC School2 variabel instan baru class Student: # Class variable school_name = 'ABC School ' # constructor def __init__(self, name): self.name = name # access class variable inside constructor using self print(self.school_name) # access using class name print(Student.school_name) # create Object s1 = Student('Emma')9 dibuat

Jadi ketika Anda mencoba mengakses variabel kelas menggunakan objek ABC School ABC School0 atau ABC School ABC School2, itu tidak akan mengembalikan nilai variabel kelas yang sebenarnya

Untuk menghindarinya, selalu ubah nilai variabel kelas menggunakan nama kelas sehingga semua objek mendapatkan nilai yang diperbarui. Seperti ini

Berapa banyak jenis variabel yang ada di OOP dengan Python?

tiga berbagai jenis variabel dalam OOP dengan Python adalah. Variabel Instance. Variabel yang didefinisikan di dalam __init__ disebut variabel instan dan ini adalah level objek. Variabel Kelas/Statis. Variabel yang didefinisikan di luar metode __init__ disebut variabel kelas dan ini adalah tingkat kelas.

Apa sajakah jenis variabel dalam Python?

Jenis Variabel Python .
Angka
Rangkaian
Tuple

Apa variabel lokal dalam OOP dengan Python?

Variabel Lokal Python . Jenis variabel ini disebut variabel lokal. Misalnya, def salam(). # variabel lokal pesan = 'Halo' print('Lokal', pesan) salam() # coba akses variabel pesan # di luar fungsi sapa() cetak(pesan) Jalankan Kode. We cannot access them outside the function. These types of variables are called local variables. For example, def greet(): # local variable message = 'Hello' print('Local', message) greet() # try to access message variable # outside greet() function print(message) Run Code.

Apa jenis variabel di dalam kelas dengan Python?

Kelas Python dapat memiliki dua jenis variabel. Instance, dan Variabel Kelas .

Postingan terbaru

LIHAT SEMUA