首页 › 论坛 › 置顶 › Python基础 -属性与方法
正在查看 1 个帖子:1-1 (共 1 个帖子)
-
作者帖子
-
2025-11-13 10:01 #27378Q QPY课程团队管理员
* 属性与方法 *
项目:构建一个“汽车工厂应用”以理解属性和方法在实例和类层级上的工作原理。
01. 学习目标
通过本课的学习,您将能够:
- 理解属性与方法之间的区别
- 区分实例属性和类属性
- 实现特殊方法(双下划线方法),如
__str__ - 使用这两种类型的属性设计可重用和结构化的类
02. 问题场景
您正在开发一个小型“汽车工厂”系统。
每辆车应该有自己的型号和品牌(实例属性),
但所有汽车共享相同的轮子数量(类属性)。
您还将学习如何使用特殊方法整洁地表示对象。
*03. 第一步 – 属性 *
属性是属于对象的变量。
它们保存对象的数据,并通过.运算符访问。class Person: def __init__(self, name, age): self.name = name # 实例属性 self.age = age p1 = Person("Sabin", 30) print(p1.name) # Sabin print(p1.age) # 30
*04. 第2步 – 方法 *
方法是在类内部定义的函数,通常用于操作属性。
class Dog: def __init__(self, name): self.name = name def bark(self):print(f"{self.name} 正在叫! / {self.name}가 짖고 있어요!") d = Dog("Buddy") d.bark()
05. 第三步 – 实例属性与类属性
属性可以存在于两个层次:
- 实例属性 → 每个对象独有
- 类属性 → 所有对象共享
class Student: school = "Python Academy" # 类属性 def __init__(self, name): self.name = name # 实例属性 s1 = Student("Tom") s2 = Student("Anna")print(s1.name, s1.school) # 汤姆 Python 学院 print(s2.name, s2.school) # 安娜 Python 学院
06. 第四步 – 特殊方法(双下划线方法)
特殊方法(也称为 dunder 方法)以双下划线
__开头和结尾。
__str__定义了一个对象应如何作为字符串显示。class Book: def __init__(self, title, author): self.title = title self.author = author def __str__(self): return f"'{self.title}' by {self.author}"b = Book("Python Basics", "Sabin") print(b) # 'Python Basics' by Sabin
07. 第五步 – 实践示例
示例 1: 汽车类
class Car:wheels = 4 # 类属性 def __init__(self, brand, model): self.brand = brand self.model = model def info(self): print(f"{self.brand} {self.model} 具有 {Car.wheels} 个轮子。")c1 = Car("特斯拉", "Model 3") c1.info() # 特斯拉 Model 3 有 4 个轮子。
示例 2:计数器类
class Counter:count = 0 # 类属性 def __init__(self): Counter.count += 1 c1 = Counter() c2 = Counter() print("对象总数:", Counter.count) # 2
08. 第六步 – 迷你项目:汽车工厂应用
让我们将所学的知识结合起来,做一个小项目。
class Car: factory_name = "Python Motors" # 类属性 total_cars = 0 # 类计数器 def __init__(self, brand, model): self.brand = brand self.model = modelCar.total_cars += 1
def info(self):
print(f“{self.brand} {self.model} (由 {Car.factory_name} 制造)“)def __str__(self):
return f“汽车: {self.brand} {self.model}“# 创建汽车 c1 = Car("特斯拉", "Model 3") c2 = Car("现代", "Ioniq 6") c1.info() c2.info() print("生产的汽车总数:", Car.total_cars)输出:
Tesla Model 3(由 Python Motors 制造) Hyundai Ioniq 6(由 Python Motors 制造) 总生产汽车数量:2
09. 反思
你已经学习了如何:
- 定义和使用 实例 和 类 属性
- 实现并调用来自对象的 方法
- 使用 魔法方法 以获得可读的字符串表示
- 在实际项目中应用面向对象编程原则(汽车工厂示例)
-
作者帖子
正在查看 1 个帖子:1-1 (共 1 个帖子)
- 哎呀,回复话题必需登录。