构造方法 (__init__)
本课属于 Coddy Python 学习旅程的“面向对象编程”单元。第 7 课,共 64 课。
__init__ 方法是一种特殊方法,在你创建新对象时会自动运行。它会初始化对象的属性。
下面是一个带有构造函数的类示例:
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breed__init__ 方法接收参数,并使用 self 将它们赋值给实例属性。
使用构造函数创建对象:
rex = Dog("Rex", "German Shepherd")
buddy = Dog("Buddy", "Golden Retriever")调用 Dog("Rex", "German Shepherd") 时,Python 会自动调用 __init__ 并传入参数。
访问由构造函数设置的属性:
print(rex.name)
print(rex.breed)
print(buddy.name)
print(buddy.breed)输出:
Rex
German Shepherd
Buddy
Golden Retriever你也可以使用带默认值的构造函数:
class Cat:
def __init__(self, name, age=1):
self.name = name
self.age = age
# 创建猫对象
fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers") # age 的默认值为 1
print(f"{fluffy.name} is {fluffy.age} years old")
print(f"{whiskers.name} is {whiskers.age} years old")输出:
Fluffy is 3 years old
Whiskers is 1 years old要点:创建对象时,__init__ 方法会确保对象使用初始数据正确完成设置。这样你就不必在创建对象后手动设置属性。
挑战
简单给你提供了用于实现图书管理系统的 Python 文件(book.py 和 driver.py)。在这个挑战中,你将在一个文件中定义 Book 类,然后在另一个文件中导入并使用它。
你的任务是:
- 在
book.py中完善Book类,添加一个__init__方法,用于初始化title、author和pages属性 driver.py文件会导入并使用你的Book类,创建一本书,信息为"Harry Potter" by "J.K. Rowling" with 400 pages
按照 book.py 中详细的 TODO 注释进行操作。
亲手试试
# TODO: 从 book.py 导入 Book 类
# 使用以下格式:from book import Book
# TODO: 创建一个名为 'my_book' 的图书对象,并设置以下值:
# - title: "Harry Potter"
# - author: "J.K. Rowling"
# - pages: 400
# 示例:my_book = Book("Title", "Author", pages)
# 打印图书详情
# TODO: 确保运行到这一行之前已正确定义 my_book
print(f"'{my_book.title}' by {my_book.author}, {my_book.pages} pages")这节课包含一个小测验。开始学习即可作答,并记录你的进度。
面向对象编程中的所有课
自己练习: Python 在线编译器