国际访客建议访问 Primers 编程伙伴 国际版站点 > Python 教程 > 创建类和对象 以获得更好的体验。

# Python 创建类和对象

创建类和对象的方式:

# 创建类,类是类型
class 类名:
    
    # 构造函数,负责初始化对象
    def __init__(self, 形式参数列表) -> None:
        pass

    # ... 类的其它内容

# 创建对象,对象是类的变量
变量名:类名 = 类名(实际参数列表)   # 这里调用构造函数

类的 __init__ 函数(前后各两个下划线)是构造函数,用于在创建对象时初始化该对象,它的第一个参数 self 会在调用时被传入对象本身。

类的函数成员也被称作 方法(method),相应的类的变量成员也被称作 属性(Attribute)

  • 创建方法的方式和 __init__ 一样,在类的内部创建函数即可,第一个参数为 self

  • 创建属性的方式则是在 __init__ 中给 self 添加变量

class 类名:
    # 构造函数,负责初始化对象
    def __init__(self, 形式参数列表) -> None:
        # 创建属性
        self.属性1 = 初始值
        self.属性2 = 初始值
        self.属性3 = 初始值

    # 创建方法
    def method1(self, 形式参数列表) -> 返回值类型:
        pass

    def method2(self, 形式参数列表) -> 返回值类型:
        pass

    def method3(self, 形式参数列表) -> 返回值类型:
        pass

例如:

运行示例

class Refrigerator:
    """
    冰箱类,用于模拟冰箱的开关门和存储内容物。
    """

    def __init__(self):
        """
        构造函数,负责初始化冰箱的状态
        """

        # 使用两个下划线开头,是对象的私有变量
        self.__contents = []                # 内容物,初始化为空列表
        self.__is_open = False              # 冰箱门是否开启,初始化为 False

    def open(self):
        """
        打开冰箱门
        """
        self.__is_open = True

    def close(self):
        """
        关闭冰箱门
        """
        self.__is_open = False

    def store(self, goods) -> bool:
        """
        存入物品

        参数:
            goods(Any): 要添加的物品。

        返回值:
            bool: 是否成功。
        """

        if not self.__is_open:              # 冰箱门没有打开返回 False
            return False
        
        self.__contents.append(goods)       # 将物品加入内容物列表
        return True

    def take(self, index:int):
        """
        存入物品

        参数:
            index(int): 要取出物品的位置。

        返回值:
            Any: 取出的物品。
        """

        if not self.__is_open:              # 冰箱门没有打开返回 None
            return None

        if len(self.__contents) <= index:   # 物品不存在,返回 None
            return None

        goods = self.__contents[index]
        self.__contents.pop(index)          # 从列表中移除

        return goods

# 创建冰箱对象,可以有多个冰箱,它们拥有的属性是独立的
refrigerator_A = Refrigerator()
refrigerator_B = Refrigerator()

refrigerator_A.open()           # 开门,self 为 refrigerator_A 下同
refrigerator_A.store('大象')    # 把大象装进去
refrigerator_A.close()          # 关门

refrigerator_B.open()           # 开门,self 为 refrigerator_B 下同
refrigerator_B.store('狮子')    # 把狮子装进去
refrigerator_B.close()          # 关门

goods = refrigerator_A.take(0)  # 取出物品
print(goods)                    # 查看拿到了什么

refrigerator_B.open()           # 开门
goods = refrigerator_B.take(0)  # 取出物品
print(goods)                    # 查看拿到了什么
本文 更新于: 2025-06-19 01:15:30 创建于: 2025-06-19 01:15:30