`self` trong Python là gì?
By datnq, at: 18:57 Ngày 19 tháng 12 năm 2022
Thời gian đọc ước tính: __READING_TIME__ minutes


Trong Python, self
là một từ khóa đặc biệt được sử dụng trong định nghĩa lớp để đại diện cho một thể hiện của lớp đó. Nó cho phép truy cập vào các thuộc tính và phương thức của lớp trong lập trình hướng đối tượng.
Một số chúng ta sử dụng điều này mỗi ngày mà không biết một số tính năng cốt lõi
Tại sao sử dụng self
?
Tham số self
hoạt động như một tham chiếu đến thể hiện hiện tại của lớp. Nó cho phép các phương thức trong lớp truy cập và sửa đổi các thuộc tính của đối tượng và gọi các phương thức khác.
Các đặc điểm chính của self
:
-
Tham chiếu đến thể hiện hiện tại của lớp.
-
Phải là tham số đầu tiên của các phương thức thể hiện.
-
Có thể được đặt tên khác, mặc dù
self
là quy ước.
self
hoạt động như thế nào
Đây là một ví dụ đơn giản:
class Person:
def __init__(self, name, age):
self.name = name # Gán tên cho thuộc tính thể hiện
self.age = age # Gán tuổi cho thuộc tính thể hiện
def greet(self):
print(f"Hello, my name is {self.name} and I am {self.age} years old.")
# Tạo một thể hiện của Person
person = Person("Alice", 30)
person.greet() # Kết quả: Hello, my name is Alice and I am 30 years old.
Giải thích:
-
__init__
là một phương thức đặc biệt được gọi là hàm khởi tạo.
-
self.name
vàself.age
tham chiếu đến các thuộc tính của thể hiện.
-
Phương thức
greet()
sử dụngself
để truy cập và in các thuộc tính này.
Lỗi thường gặp với self
1. Bỏ sót self
trong định nghĩa phương thức:
def greet(): # Thiếu self
print("Hello!")
Sửa:
def greet(self):
print("Hello!")
2. Nhầm lẫn self
với biến lớp:
class Counter:
count = 0 # Biến lớp
def __init__(self):
self.count += 1 # Sử dụng không chính xác
Sửa: Sử dụng Counter.count
để sửa đổi biến lớp.
Các trường hợp sử dụng nâng cao
Truy cập các thuộc tính lớp
class Example:
class_variable = 42
def show_class_variable(self):
print(f"Class variable: {Example.class_variable}")
Kết nối phương thức
class Addition:
def __init__(self):
self.data = []
def add(self, value):
self.data.append(value)
return self # Cho phép kết nối phương thức
def display(self):
print(self.data)
b = Addition()
b.add(1).add(2).add(3).display() # Kết quả: [1, 2, 3]
Kết luận
Từ khóa self
là rất cần thiết trong lập trình hướng đối tượng của Python. Nó đại diện cho thể hiện của lớp và cung cấp quyền truy cập vào dữ liệu và phương thức của thể hiện. Bằng cách hiểu cách sử dụng self
, bạn có thể tạo ra mã mạnh mẽ và có thể tái sử dụng trong các dự án Python của mình.