Python - 面向对象编程 - __init__() 构造方法

什么是构造方法

  • 在创建类时, 可手动添加一个   __init__() 方法,称为构造方法,这是一个实例方法
  • 构造方法用于创建实例对象时使用,每当创建一个类的实例对象时,Python 解释器都会自动调用它
  • 一般用来初始化对象的某些属性

 

构造方法语法格式

class 类:
    def __init__(self, 参数):
        self.属性 = 参数
     ... 对象
= 类(参数)
  • init 的前缀和后缀是两个下划线 _
  • 方法可以包含多个参数,但必须要包含一个 self 参数,且必须为第一个参数,所以至少要包含一个 self 参数
  • 第一个参数 self 指向新创建的对象

 

类的默认构造方法

  • __init__() 构造方法并不是必写
  • 假设不写,Python 也会自动添加一个仅包含 self 参数的 __init__() 构造方法,这又称为类的默认构造方法

 

不带参数的构造方法栗子

复制代码
# 不带参数
class PoloBlog:
    def __init__(self):
        print("自动调用构造方法")
        # 定义了一个实例属性
        self.name = "小菠萝"


blog = PoloBlog()
print(blog.name)


# 输出结果
自动调用构造方法
小菠萝
复制代码

显然,在创建 blog 这个对象时,隐式调用了手动创建的 __init__() 构造方法

 

带参数的构造方法栗子

复制代码
# 带参数
class PoloBlog:
    def __init__(self, name, age):
        print("自动调用构造方法")
        # 初始化实例属性
        self.name = name
        self.age = age

    # 下面定义了一个 say 实例方法
    def say(self):
        print(self.name, self.age)


blog = PoloBlog("姓名", "年龄")
blog.say()
复制代码

 

posted @   小菠萝测试笔记  阅读(2168)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
历史上的今天:
2020-08-28 Jmeter系列(68)- BeanShell 内置变量 prev
点击右上角即可分享
微信分享提示