Lập trình hướng đối tượng Python cho phép các biến được sử dụng ở cấp lớp hoặc cấp phiên bản trong đó các biến chỉ đơn giản là các ký hiệu biểu thị giá trị bạn đang sử dụng trong chương trình.
Ở cấp độ lớp, các biến được gọi là biến lớp trong khi các biến ở cấp cá thể được gọi là biến cá thể. Hãy hiểu biến lớp và biến phiên bản thông qua một ví dụ đơn giản -
# Class Shark class Shark: animal_type= 'fish' # Class Variable def __init__(self, name, age): self.name = name self.age = age # Creating objects of Shark class obj1 = Shark("Jeeva", 54) obj2 = Shark("Roli", 45) print ("Printing class variable using two instances") print ("obj1.animal_type =", obj1.animal_type) print ("obj2.animal_type =", obj2.animal_type) #Let's change the class variable using instance variable obj1.animal_type = "BigFish" print ("\nPrinting class variable after making changes to one instance") print ("obj1.animal_type=", obj1.animal_type) print ("obj2.animal_type =", obj2.animal_type)
Trong chương trình trên, chúng ta đã tạo một lớp Shark và sau đó chúng ta đang cố gắng thay đổi biến lớp bằng cách sử dụng đối tượng, điều này sẽ tạo ra một biến thể hiện mới cho đối tượng cụ thể đó và biến này sẽ tạo bóng cho biến lớp.
đầu ra
Printing class variable using two instances obj1.animal_type = fish obj2.animal_type = fish Printing class variable after making changes to one instance obj1.animal_type= BigFish obj2.animal_type = fish
Hãy sửa đổi chương trình trên của chúng tôi để có được kết quả chính xác -
# Class Shark class Shark: animal_type= 'fish' # Class Variable def __init__(self, name, age): self.name = name self.age = age # Creating objects of Shark class obj1 = Shark("Jeeva", 54) obj2 = Shark("Roli", 45) print ("Printing class variable using two instances") print ("obj1.animal_type =", obj1.animal_type) print ("obj2.animal_type =", obj2.animal_type) #Let's change the class variable using instance variable #obj1.animal_type = "BigFish" Shark.animal_type = "BigFish" print("New class variable value is %s, changed through class itself" %(Shark.animal_type)) print ("\nPrinting class variable after making changes through instances") print ("obj1.animal_type=", obj1.animal_type) print ("obj2.animal_type =", obj2.animal_type)
Kết quả
Printing class variable using two instances obj1.animal_type = fish obj2.animal_type = fish New class variable value is BigFish, changed through class itself Printing class variable after making changes through instances obj1.animal_type= BigFish obj2.animal_type = BigFish