Người đọc nên có kiến thức trước về lớp, đối tượng và cấp phát bộ nhớ cho đối tượng. Bấm vào đây
Tóm tắt nhanh các khái niệm về lớp và đối tượng
Trong lớp học cuối cùng của chúng tôi, chúng tôi đã lấy một ví dụ google để hiểu lớp và đối tượng
Trong lớp google, chúng tôi đã có một biến đầu vào. Và một phương pháp tìm kiếm
Bất cứ khi nào chúng ta tạo một đối tượng, một bộ nhớ riêng sẽ được phân bổ cho từng đối tượng
Thí dụ
x=google[“Ấn Độ”] chúng ta đã tạo một đối tượng của lớp google, và chuỗi đầu vào là Ấn Độ
Một bộ nhớ riêng được cấp phát cho đối tượng x. Giả sử bộ nhớ được phân bổ tại vị trí 50
Trong bộ nhớ được phân bổ, đầu vào được lưu trữ. Trong ví dụ của chúng tôi, Ấn Độ được lưu trữ
Lấy thêm một đối tượng, y= google[“japan”]. đối tượng y được gán một bộ nhớ mới và nhật bản đầu vào được lưu trữ trong bộ nhớ
Sự hiểu biết cơ bản về một đối tượng này được thảo luận trong các lớp trước của chúng ta
Thêm một định nghĩa cho đối tượng. Đối tượng là một thể hiện của một lớp
Bất cứ khi nào một đối tượng được xác định, một thể hiện riêng biệt sẽ được tạo. Tôi. e. , một bộ nhớ riêng biệt được tạo ra
Biến thể hiện
Các biến được lưu trữ trong bộ nhớ được cấp phát cho đối tượng được gọi là biến thể hiện
Trong ví dụ trên của chúng tôi, chuỗi đầu vào là một biến thể hiện
Lấy một mẫu và hiểu cách xác định hàm tạo và biến thể hiện
class Test:
def __init__[self,k]:
self.instvar=k
def f[self]:
print[self.instvar]
def f1[self]:
M=40
print[self.instvar+M]
x=Test[40]
y=Test[80]
x.f[]
Trong chương trình trên, chúng ta có một lớp gọi là test
Trong lớp đó, chúng tôi có phương thức __init__. Và trong phương thức chúng ta có tham số self và tham số k
Chúng ta sẽ thảo luận về tham số self sau trong phần này
Chúng tôi có hai phương thức khác có tên là f và f1
Bất cứ khi nào chúng ta tạo một đối tượng. Trình thông dịch Python sẽ tự động gọi phương thức init
Thí dụ
x=Test[40] chúng tôi đã định nghĩa một đối tượng
Bất cứ khi nào chúng ta định nghĩa một đối tượng, một bộ nhớ riêng sẽ được cấp phát. Giả sử bộ nhớ được gán ở vị trí 50
Sơ đồ bộ nhớ được hiển thị bên dưới
bản thân
Sau khi xác định đối tượng, bộ nhớ riêng biệt được cấp phát và phương thức init gọi mặc định của python
Phương thức init trong ví dụ trên có một biến self. Biến self được gán tham chiếu của đối tượng
Trong ví dụ của chúng tôi, biến tự tham chiếu đến vị trí bộ nhớ 50. Việc phân bổ này được thực hiện tự động bởi trình thông dịch python
Biến đầu tiên trong phương thức init là self. Nếu chúng ta muốn định nghĩa một tham số khác, chúng ta định nghĩa nó sau tham số self
Đối với bất kỳ phương thức nào trong lớp Python, biến đầu tiên phải là self
Theo mặc định, Python gán tham chiếu đối tượng cho biến self
Trong ví dụ của chúng tôi, khi chúng tôi xác định đối tượng. Chúng tôi sử dụng giá trị 40
Giá trị 40 được gán cho tham số k. Không phải bản thân. Tham số đầu tiên, self, là một tham chiếu đối tượng
Hàm tạo
Phương thức init được định nghĩa trong lớp được gọi là phương thức khởi tạo
Theo mặc định, Python gọi phương thức khởi tạo khi một đối tượng được tạo
Trong phần thân của phương thức khởi tạo, chúng ta đã định nghĩa self. instvar=k
bản thân. instvar nói rằng hãy tạo một biến instvar trong bộ nhớ đối tượng
Trong đối tượng x, chúng ta có một biến instvar, và biến này đang tham chiếu đến giá trị 40
Các biến hiện diện trong đối tượng chúng ta gọi chúng là biến thể hiện
Trong ví dụ của chúng tôi, instvar là một biến thể hiện
Biến k trong phương thức init là biến cục bộ. Chúng ta có thể sử dụng biến k trong phương thức
Khái niệm biến cục bộ và biến toàn cục đã được thảo luận trước đây. Bấm vào đây
Ghi chú. Biến instvar là biến toàn cục cho lớp này. Bất kỳ phương thức nào trong lớp đều có thể sử dụng biến instvar
Các biến thể hiện có thể được sử dụng bởi bất kỳ phương thức nào trong lớp
Trong chương trình trên, một đối tượng nữa được tạo. y=Kiểm tra[80]
Một bộ nhớ mới được gán cho đối tượng mới này. Và biến instvar được cho giá trị 80
Giả sử bộ nhớ được phân bổ cho đối tượng y là vị trí 80
Bất cứ khi nào chúng ta gọi x. f[]. chúng tôi đang gọi phương thức f sử dụng đối tượng x
Đối tượng x đang tham chiếu vị trí bộ nhớ 50. vì vậy biến tự được gán vị trí bộ nhớ 50
Phương thức f đang tự hiển thị. instvar. Bản thân đang trỏ đến bộ nhớ 50. vì vậy trong Bộ nhớ 50, biến instvar có giá trị là 40
Đầu ra hiển thị là 40
Điểm để hiểu
Mỗi đối tượng có các biến thể hiện riêng của nó
Lấy thêm một ví dụ để hiểu rõ hơn về khái niệm
class Test:
def f[self]:
self.instvar=20
def f1[self]:
print[self.instvar]
x=Test[]
x.f[]
Trong chương trình trên, chúng ta không có phương thức khởi tạo
Chúng tôi có phương pháp f và f1
Trong phương thức f, chúng tôi đang tạo một biến thể hiện và được gán giá trị 20
Điểm để hiểu
Chúng ta có thể định nghĩa các biến thể hiện không chỉ trong hàm tạo mà trong bất kỳ phương thức nào
Lý do để xác định các biến thể hiện trong phương thức khởi tạo?
Phương thức khởi tạo được gọi theo mặc định trong quá trình tạo đối tượng. Các phương thức còn lại không được gọi theo mặc định