Thiết kế với các classes Python (phần 8)

Các biến thực thể và phương thức __init__

Hầu hết các classes bao gồm một phương thức đặc biệt tên __init__ . Sau đây là code cho phương thức này trong Student
class:

def __init__(self, name, number):

“””All scores are initially 0.”””
self.name = name
self.scores = []
for count in range(number):

self.scores.append(0)

Chú ý rằng __init__ phải bắt đầu và kết thúc với 2 dấu gạch chân liên tiếp. Phương thức này cũng được gọi là class
s constructor, vì nó được chạy tự động khi một người dùng khởi tạo thực thể class. Vì vậy, khi phân đoạn code

s = Student(“Juan”, 5)

được chạy, Python tự động chạy constructor hay phương thức __init__ của Student class. Mục đích của constructor
là khởi tạo thực thể các thuộc tính của một object riêng rẽ. Ngoài self, Student constructor mong đợi hai đối
số cái cung cấp các giá trị ban đầu cho các thuộc tính này. Từ điểm này trở đi, khi chúng ta nhắc đến một class
s constructor, chúng ta có nghĩa phương thức __init__ của nó.
Các thuộc tính của một object được trình bày như các biến thực thể. Mỗi object riêng rẽ có một tập các biến thực
thể của bản thân nó. Các biến này phục vụ như nơi lưu giữ cho trạng thái của nó. Phạm vi của một biến thực thể
(bao gồm self) là toàn bộ định nghĩa class. Vì vậy, tất cả các phương thức của class là ở trong một vị trí tham
chiếu đến các biến thực thể. Vòng đời của một biến thực thể là vòng đời của object bao gói. Vòng đời của một
object sẽ được thảo luận chi tiết hơn sau này trong học phần.
Bên trong định nghĩa class, các tên của các biến thực thể phải bắt đầu với self. Ví dụ, trong định nghĩa của
Student class, các biến thực thể self.name và self.scores được khởi tạo thành một string và một list tương ứng.

Chia sẻ