云涯历险记

热爱可抵万难

云涯历险记

热爱可抵万难

python知识点

python关键字:cls

概述

1. 简单的类比

想象一个 蛋糕模具工厂

  • 模具 (cls):代表整个蛋糕模具的设计蓝图。它定义了所有蛋糕的共同特征(例如形状、大小)。
  • 单个模具 (self):代表从模具中制作出的一个具体蛋糕。每个蛋糕可以有自己独特的装饰(例如奶油、水果),但它们都遵循模具的基本设计。

2. 核心概念

  • cls

    • 代表 类本身
    • 类方法 中使用。
    • 用于访问和修改 类级别的属性(属于整个类的属性,所有实例共享)。
  • self

    • 代表 类的实例(即对象)。
    • 实例方法 中使用。
    • 用于访问和修改 实例级别的属性(属于特定对象的属性)。

3. 代码示例

class Cake:
    frosting = "vanilla"  # 类属性

    def __init__(self, fruit):
        self.fruit = fruit  # 实例属性

    @classmethod
    def change_frosting(cls, new_frosting):
        cls.frosting = new_frosting

    def describe(self):
        print(f"This cake has {self.fruit} and {self.frosting} frosting.")

# 创建蛋糕实例
cake1 = Cake("strawberries")
cake2 = Cake("blueberries")

# 访问和修改属性
print(Cake.frosting)  # 输出: vanilla
cake1.describe()     # 输出: This cake has strawberries and vanilla frosting.

# 修改类属性
Cake.change_frosting("chocolate")
print(Cake.frosting)  # 输出: chocolate
cake2.describe()     # 输出: This cake has blueberries and chocolate frosting.