Phương thức
Thuộc phần Lập trình hướng đối tượng trong hành trình Python của Coddy. Bài học 5 trên 64.
Phương thức (method) là các hàm thuộc về một lớp. Chúng xác định hành vi hoặc hành động mà các đối tượng có thể thực hiện.
Đây là ví dụ về một lớp có các phương thức:
class Calculator:
def greet(self):
print("Hello! I'm a calculator.")
def add(self, a, b):
return a + b
def multiply(self, x, y):
result = x * y
print(f"{x} × {y} = {result}")
return resultTạo một đối tượng máy tính:
my_calc = Calculator()Gọi một phương thức không cần tham số:
my_calc.greet()Gọi các phương thức với tham số:
sum_result = my_calc.add(5, 3)
print(sum_result)Gọi một phương thức vừa in ra vừa trả về một giá trị:
product = my_calc.multiply(4, 7)Đầu ra:
Hello! I'm a calculator.
8
4 × 7 = 28Phương thức có thể:
- Nhận tham số như
add(self, a, b) - Trả về giá trị như
return a + b - In đầu ra trực tiếp như
print("Hello!") - Vừa in ra vừa trả về giá trị
Điểm chính: Phương thức (method) xác định đối tượng của bạn có thể làm gì. Luôn thêm self làm tham số đầu tiên, nhưng đừng truyền tham số này khi gọi phương thức.
Thử thách
DễTrong thử thách này, bạn sẽ triển khai một hệ thống ngân hàng. Bạn sẽ tạo lớp BankAccount trong một tệp và sử dụng lớp đó trong một tệp khác, qua đó tìm hiểu cách tổ chức code để dễ bảo trì hơn.
Bạn cần làm việc với hai tệp:
- bank_account.py: Nơi bạn định nghĩa lớp
BankAccount - driver.py: Nơi bạn nhập lớp, tạo tài khoản và thực hiện các giao dịch
Tạo lớp BankAccount trong bank_account.py với:
- Một thuộc tính lớp
bank_namecó giá trị "Python National Bank" - Một phương thức
depositnhận một khoản tiền và cộng khoản đó vào số dư tài khoản - Một phương thức
withdrawnhận một khoản tiền và trừ khoản đó khỏi số dư - Một phương thức
get_balancetrả về số dư hiện tại
Sau đó, trong driver.py, hãy nhập lớp BankAccount, tạo một tài khoản, nạp $100, rút $30 và in số dư theo định dạng: f"Current balance: ${my_account.get_balance()}"
Tự làm thử
from bank_account import BankAccount
# Tạo một tài khoản và kiểm tra các phương thức (methods) của bạn
my_account = BankAccount()
my_account.balance = 0 # Số dư ban đầu
# TODO: Thực hiện các giao dịch
# (Viết code của bạn ở đây)
# TODO: In ra số dư cuối cùng
# (Viết code của bạn ở đây)Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Lập trình hướng đối tượng
1Nền tảng về lập trình hướng đối tượng
Tệp bên ngoàiGiới thiệu về lập trình hướng đối tượngLớp và đối tượngTham số selfPhương thứcThuộc tínhPhương thức khởi tạo (__init__)Ôn tập: máy tính đơn giản4Kế thừa
Kế thừa cơ bảnHàm super()Ghi đè phương thứcKế thừa đa lớpThứ tự phân giải phương thứcÔn tập: hệ thống phân cấp nhân viên2Decorator
Giới thiệu về decoratorDecorator thuộc tínhDecorator phương thức tĩnhDecorator phương thức lớp5Tính đa hình
Xem lại cách ghi đè phương thứcKiểu gõ vịtLớp và phương thức trừu tượngThiết kế giao diệnÔn tập: máy tính hình học8Các khái niệm OOP nâng cao
Kết hợp và kế thừaMixinPhương thức tĩnh và phương thức lớpDecorator lớpTrình quản lý ngữ cảnhTự luyện tập: Trình biên dịch Python online