说明
本练习在课堂内完成。请在本机使用 VS Code、Cursor 或 Devin Desktop 编写并运行,再将源代码与终端输出填入各题下方的文本框。
练习一:实例属性
编写程序,定义商品类。每件商品各自保存名称和价格。
要求
- 定义
Product。__init__(self, name, price)将名称保存到self.name,将价格保存到self.price。 - 在程序中创建两件商品并打印名称:
product1 = Product("笔记本电脑", 5999)
product2 = Product("无线鼠标", 89)
print(product1.name)
print(product2.name)
- 两行输出依次为
笔记本电脑、无线鼠标。
练习二:类属性与同名实例属性
编写程序,比较全体员工共享的公司名称,以及同名时实例属性优先于类属性。
要求
- 定义
Employee。类属性company赋值为"科技有限公司"。__init__(self, name, department)将姓名保存到self.name,将部门保存到self.department。 - 在程序中创建两名员工并打印公司名称:
emp1 = Employee("赵景行", "技术部")
emp2 = Employee("苏晚宁", "销售部")
print(emp1.company)
print(emp2.company)
print(Employee.company)
- 三行输出依次为
科技有限公司、科技有限公司、科技有限公司。 - 另定义
Counter。类属性count赋值为0。__init__(self)将self.count赋值为1。 - 在程序中创建对象并分别打印实例属性与类属性:
counter = Counter()
print(counter.count)
print(Counter.count)
- 两行输出依次为
1、0。
练习三:实例方法与类方法
编写程序,定义计算器的实例方法,以及图书馆的类方法。
要求
- 定义
Calculator。实例方法add(self, a, b)返回a + b。实例方法multiply(self, a, b)返回a * b。 - 在程序中调用并打印:
calc = Calculator()
print(calc.add(3, 5))
- 输出为
8。 - 定义
Library。类属性location赋值为"市中心图书馆"。__init__(self, book_count)将藏书数量保存到self.book_count。 - 定义类方法
get_location(cls),使用@classmethod。该方法返回cls.location。 - 在程序中通过类调用并打印:
print(Library.get_location())
- 输出为
市中心图书馆。
练习四:特殊方法
编写程序,定义平面点类,使对象能够打印、比较和相加。
要求
- 定义
Point。__init__(self, x, y)将坐标保存到self.x和self.y。 __str__(self)返回Point({x}, {y})。__eq__(self, other)在横、纵坐标都相等时返回True。__add__(self, other)返回一个新的Point,横坐标为两横坐标之和,纵坐标为两纵坐标之和。- 在程序中创建两个点并打印:
p1 = Point(1, 2)
p2 = Point(3, 4)
print(p1)
print(p1 == p2)
print(p1 + p2)
- 三行输出依次为
Point(1, 2)、False、Point(4, 6)。