PAP6.2-属性与方法

在线练习 · 人工智能专业 2026级本科《Python人工智能程序设计》

说明

本练习在课堂内完成。请在本机使用 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)。