Menu
CoddyTech

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 = breed

Phươ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 Retriever

Bạ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.

challenge icon

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 Book trong book.py với phương thức __init__ khởi tạo các thuộc tính title, author và pages
  • Tệp driver.py sẽ nhập và sử dụng lớp Book củ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")
quiz iconTự kiểm tra

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

Tự luyện tập: Trình biên dịch Python online