首页 论坛 置顶 Python基础 -属性与方法

正在查看 1 个帖子:1-1 (共 1 个帖子)
  • 作者
    帖子
  • #27378

    * 属性与方法 *

    项目:构建一个“汽车工厂应用”以理解属性和方法在实例和类层级上的工作原理。


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

    Car.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 个帖子)
  • 哎呀,回复话题必需登录。