Phương thức khởi tạo (__init__)
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 7 trên 64.
Phương thức __init__ là một phương thức đặc biệt, tự động chạy khi bạn tạo một đối tượng mới. Phương thức này khởi tạo các thuộc tính của đối tượng.
Đây là ví dụ về một lớp có hàm khởi tạo:
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breedPhương thức __init__ nhận các tham số và gán chúng cho thuộc tính của đối tượng bằng self.
Tạo các đối tượng bằng hàm khởi tạo:
rex = Dog("Rex", "German Shepherd")
buddy = Dog("Buddy", "Golden Retriever")Khi bạn gọi Dog("Rex", "German Shepherd"), Python tự động gọi __init__ và truyền các đối số.
Truy cập các thuộc tính mà hàm khởi tạo đã thiết lập:
print(rex.name)
print(rex.breed)
print(buddy.name)
print(buddy.breed)Đầu ra:
Rex
German Shepherd
Buddy
Golden RetrieverBạn cũng có thể tạo hàm khởi tạo với các giá trị mặc định:
class Cat:
def __init__(self, name, age=1):
self.name = name
self.age = age
# Tạo các đối tượng mèo
fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers") # age mặc định là 1
print(f"{fluffy.name} is {fluffy.age} years old")
print(f"{whiskers.name} is {whiskers.age} years old")Đầu ra:
Fluffy is 3 years old
Whiskers is 1 years oldĐiểm chính: Phương thức __init__ đảm bảo mỗi đối tượng được thiết lập đúng với dữ liệu ban đầu khi được tạo. Nhờ đó, bạn không cần tự thiết lập các thuộc tính sau khi tạo đối tượng.
Thử thách
DễBạn được cung cấp các tệp Python (book.py và driver.py) để triển khai hệ thống quản lý sách. Trong thử thách này, bạn sẽ định nghĩa lớp Book trong một tệp, sau đó nhập và sử dụng lớp đó trong một tệp khác.
Nhiệm vụ của bạn là:
- Hoàn thiện lớp
Booktrongbook.pyvới phương thức__init__khởi tạo các thuộc tínhtitle,authorvàpages - Tệp
driver.pysẽ nhập và sử dụng lớpBookcủa bạn để tạo một đối tượng sách cho"Harry Potter" by "J.K. Rowling" with 400 pages
Làm theo các chú thích TODO chi tiết trong book.py .
Tự làm thử
# TODO: Nhập lớp (class) Book từ book.py
# Dùng cú pháp sau: from book import Book
# TODO: Tạo đối tượng (object) sách tên là 'my_book' với các giá trị (value) sau:
# - title: "Harry Potter"
# - author: "J.K. Rowling"
# - pages: 400
# Ví dụ: my_book = Book("Title", "Author", pages)
# In ra thông tin sách
# TODO: Định nghĩa my_book đúng cách trước khi dòng này chạy
print(f"'{my_book.title}' by {my_book.author}, {my_book.pages} pages")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