【Python高级编程】类和实例化

【Python高级编程】类和实例化

配套视频课程:

【AI人工智能实战】 Python高级编程(附完整版源码资料)

1、类的声明

通俗的说,类就是一个对象的模版。定义的格式如下:

【Python高级编程】类和实例化

配套视频课程:https://www.bilibili.com/video/BV1pPpYzuE7w/?spm_id_from=333.1387.homepage.video_card.click

1、类的声明

通俗的说,类就是一个对象的模版。定义的格式如下:

class是关键字,表示要创建类,className为类名称。类里面可以有属性和方法,属性在类的外面可以看成是变量,方法就是在类中定义的函数。对象则是一个类的真实表现。创建一个对象,在类名后面加上括号即可。

例1:声明一个学生类

  • 属性:姓名、年龄、国籍、班级
  • 方法:打印学生信息
python 复制代码
class Student:
    country = "China"   # 类属性,在方法外部声明
    def info(self,name,age,cla):
        # 实例方法,默认带self参数,该参数必须有,表示的是调用该方法的对象
        # 实例方法内部声明的变量叫做实例属性,self.变量名 = value,可以在类的其他方法中调用
        self.name = name   # 实例属性,在类的内部通过self调用,在外部通过对象调用
        self.age = age
        self.cla = cla   # 班级
        name = 'aaaa'  # 局部变量,只能在当前方法内部调用
    def out(self):
        print(f'姓名:{self.name}\n年龄:{self.age}\n班级:{self.cla}\n国籍:{self.country}')

2、实例化

对象的声明(实例化)

语法:对象名 = 类名(实参1,实参2,......)

例2:实例化Student类

python 复制代码
st = Student()  # 实例化
st.info('张三',16,'高一二班')   # 通过对象调用实例方法
st.out() # 调用out方法,输出学生信息
'''
运行结果:
姓名:张三
年龄:16
班级:高一二班
国籍:China
'''

3、内置方法

类的内置方法,也叫魔法方法,我们需要掌握几个常用的内置方法。

  • new方法

    new(),用于创建对象,在实例化时首先调用new方法返回一个对象

  • 构造方法

    init(),用于初始化对象,在实例化时自动调用

  • 析构方法

    del(),用于销毁对象,在对象生命周期结束时自动调用

例:

python 复制代码
class Cls:
    def __new__(cls, *args, **kwargs):
        print('我是new方法,用于创建对象')
        return object.__new__(cls)
    def __init__(self):
        print('我是构造方法,用于初始化对象')
    def __del__(self):
        print('我是析构方法,用于销毁对象')
obj = Cls()
'''
运行结果:
我是new方法,用于创建对象
我是构造方法,用于初始化对象
我是析构方法,用于销毁对象
'''

课程小结

  1. 完成类与对象声明的语法讲解,这是面向对象编程的基础。
  2. 讲解了三个重要的内置方法,灵活使用它们可以提高代码的质量。

class是关键字,表示要创建类,className为类名称。类里面可以有属性和方法,属性在类的外面可以看成是变量,方法就是在类中定义的函数。对象则是一个类的真实表现。创建一个对象,在类名后面加上括号即可。

例1:声明一个学生类

  • 属性:姓名、年龄、国籍、班级
  • 方法:打印学生信息
python 复制代码
class Student:
    country = "China"   # 类属性,在方法外部声明
    def info(self,name,age,cla):
        # 实例方法,默认带self参数,该参数必须有,表示的是调用该方法的对象
        # 实例方法内部声明的变量叫做实例属性,self.变量名 = value,可以在类的其他方法中调用
        self.name = name   # 实例属性,在类的内部通过self调用,在外部通过对象调用
        self.age = age
        self.cla = cla   # 班级
        name = 'aaaa'  # 局部变量,只能在当前方法内部调用
    def out(self):
        print(f'姓名:{self.name}\n年龄:{self.age}\n班级:{self.cla}\n国籍:{self.country}')

2、实例化

对象的声明(实例化)

语法:对象名 = 类名(实参1,实参2,......)

例2:实例化Student类

python 复制代码
st = Student()  # 实例化
st.info('张三',16,'高一二班')   # 通过对象调用实例方法
st.out() # 调用out方法,输出学生信息
'''
运行结果:
姓名:张三
年龄:16
班级:高一二班
国籍:China
'''

3、内置方法

类的内置方法,也叫魔法方法,我们需要掌握几个常用的内置方法。

  • new方法

    new(),用于创建对象,在实例化时首先调用new方法返回一个对象

  • 构造方法

    init(),用于初始化对象,在实例化时自动调用

  • 析构方法

    del(),用于销毁对象,在对象生命周期结束时自动调用

例:

python 复制代码
class Cls:
    def __new__(cls, *args, **kwargs):
        print('我是new方法,用于创建对象')
        return object.__new__(cls)
    def __init__(self):
        print('我是构造方法,用于初始化对象')
    def __del__(self):
        print('我是析构方法,用于销毁对象')
obj = Cls()
'''
运行结果:
我是new方法,用于创建对象
我是构造方法,用于初始化对象
我是析构方法,用于销毁对象
'''

课程小结

  1. 完成类与对象声明的语法讲解,这是面向对象编程的基础。
  2. 讲解了三个重要的内置方法,灵活使用它们可以提高代码的质量。
相关推荐
Shockang6 小时前
llama.cpp 本地运行 9B 模型:部署、工具调用与微调数据
人工智能
Shockang7 小时前
n8n 智能体工作流实战:触发、工具、记忆与发布护栏
人工智能
冬奇Lab8 小时前
开源项目第241期:YuE2 —— 用符号乐谱当“白盒“接口的开源音乐生成模型,SongBench 超越 Suno v5/v6
人工智能
鶴哥只手遮天9 小时前
Spring AI 2.0.1 深度解析-第 14 章 MCP 服务端(上):注解式实现与工具来源
java·人工智能·开源
鶴哥只手遮天9 小时前
Spring AI 2.0.1 深度解析-第 15 章 MCP 服务端(下):三种协议形态、Streamable 传输与状态管理
java·人工智能·开源
鶴哥只手遮天9 小时前
Spring AI 2.0.1 深度解析-第 16 章 向量存储(上):`VectorStore` 接口体系、`BatchingStrategy`
java·人工智能·开源
鶴哥只手遮天9 小时前
Spring AI 2.0.1 深度解析-第 12 章 工具循环的流式形态、Usage 累加与扩展体系
java·人工智能·开源
鶴哥只手遮天9 小时前
Spring AI 2.0.1 深度解析-第 23 章 模型供应商实现:从 `OpenAiSetup` 到 Bedrock
java·人工智能·开源
鶴哥只手遮天9 小时前
Spring AI 2.0.1 深度解析-第 06 章 内置 Advisor 全景:13 个实现逐个剖到源码级
java·人工智能·开源