Khi tạo một class
trong Python, thông thường bạn sẽ tạo các thuộc tính có thể dùng chung cho mọi đối tượng của một lớp hoặc các thuộc tính sẽ là duy nhất cho từng đối tượng của lớp.
Trong bài viết này, chúng ta sẽ thấy sự khác biệt giữa thuộc tính lớp và thuộc tính thể hiện trong Python với các ví dụ.
Trước khi làm điều đó, hãy xem cách tạo một lớp trong Python.
Cách tạo một lớp trong Python
Để tạo một lớp trong Python, chúng ta sử dụng class
từ khóa theo sau là tên của lớp. Đây là một ví dụ:
class Student:
name = "Jane"
course = "JavaScript"
Trong đoạn mã trên, chúng tôi đã tạo một lớp gọi là Student
với một name
và course
tài sản. Bây giờ hãy tạo các đối tượng mới từ lớp này.
class Student:
name = "Jane"
course = "JavaScript"
Student1 = Student()
print(Student1.name)
# Jane
Chúng tôi đã tạo một đối tượng mới được gọi là Student1
từ Student
lớp.
Khi chúng tôi in Student1.name
, chúng tôi đã in “Jane” ra bàn điều khiển. Nhớ lại rằng giá trị của Jane đã được lưu trữ trong một biến trong lớp ban đầu được tạo.
Cái này name
và course
các biến thực sự là các thuộc tính lớp. Chúng ta sẽ xem thêm các ví dụ trong phần tiếp theo để giúp bạn hiểu rõ hơn.
Thuộc tính lớp và trường hợp trong Python
Để đưa ra một định nghĩa cơ bản của cả hai điều khoản, thuộc tính lớp là các biến lớp được kế thừa bởi mọi đối tượng của một lớp. Giá trị của các thuộc tính lớp vẫn giữ nguyên cho mọi đối tượng mới.
Giống như bạn sẽ thấy trong các ví dụ trong phần này, các thuộc tính lớp được định nghĩa bên ngoài __init__()
chức năng.
Mặt khác, thuộc tính thể hiệnđược xác định trong __init__()
hàm, là các biến lớp cho phép chúng ta xác định các giá trị khác nhau cho từng đối tượng của một lớp.
Đây là một ví dụ:
class Student:
school = "freeCodeCamp.org"
def __init__(self, name, course):
self.name = name
self.course = course
Student1 = Student("Jane", "JavaScript")
Student2 = Student("John", "Python")
print(Student1.name) # Jane
print(Student2.name) # John
Trong đoạn mã trên, chúng tôi đã tạo một biến trong Student
lớp được gọi school
.
Chúng tôi đã tạo thêm hai biến nhưng trong __init__()
chức năng – name
và course
– mà chúng tôi đã khởi tạo bằng cách sử dụng self
tham số.
Tham số đầu tiên trong một __init__()
hàm dùng để khởi tạo các tham số khác khi tạo các biến trong hàm. Bạn có thể gọi nó là gì bạn muốn – theo quy ước, self
chủ yếu được sử dụng.
Các school
biến hoạt động như một thuộc tính lớp trong khi name
và course
là các thuộc tính thể hiện. Hãy chia nhỏ ví dụ trên để giải thích các thuộc tính của cá thể.
Student1 = Student("Jane", "JavaScript")
Student2 = Student("John", "Python")
print(Student1.name) # Jane
print(Student2.name) # John
Chúng tôi đã tạo hai đối tượng từ Student
lớp – Student1
và Student2
. Mỗi đối tượng này, theo mặc định, sẽ có tất cả các biến được tạo trong lớp. Nhưng mỗi đối tượng có thể có riêng của mình name
và course
biến bởi vì chúng đã được tạo ra trong __init__()
chức năng.
Bây giờ hãy in school
biến cho từng đối tượng và xem điều gì sẽ xảy ra.
print(Student1.school) # freeCodeCamp.org
print(Student2.school) # freeCodeCamp.org
Cả hai đều cho chúng tôi cùng một giá trị bởi vì school
biến là một thuộc tính lớp.
Phần kết luận
Trong bài viết này, chúng ta đã thấy cách tạo một lớp trong Python và sự khác biệt giữa các thuộc tính lớp và thể hiện.
Tóm tắt, thuộc tính lớp giữ nguyên cho mọi đối tượng và được xác định bên ngoài __init__()
chức năng. thuộc tính thể hiện hơi động vì chúng có thể có các giá trị khác nhau trong mỗi đối tượng.
thuộc tính thể hiện được định nghĩa trong __init__()
chức năng.
Chúc mừng mã hóa!