社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python中 __init__的通俗解释是什么?

AI有道 • 4 年前 • 475 次点击  

可能大家常常会在面向对象编程中看到__init__,而且几乎每个类中都会有,它的作用都是是什么呢?

要想明白__init__,你首先要弄清楚面向对象是什么?

Python是一门面向对象的编程语言,面向对象是一种代码封装的技术,包含了各种功能,让代码能重复利用、高效节能。

我们通过class来定义类,类又包含了属性、方法等,属性是类里面的变量,方法是类里面的函数

而__init__就是其中一种函数,叫做构造函数。

def __init__(self,...):
    代码块

每次创建类的实例对象时,__init__函数就会自动被调用,无论它里面有什么样的变量、计算,统统会自动调用。

可能你又会问实例对象是什么?其实我们可以把类比作一张建筑图纸,而实例对象是建造的房子,房子的所有功能都是根据图纸来设计的。

理解__init__函数需要搞清楚以下三点:

1、带有两个下划线开头的函数是声明该属性为私有,不能在类地外部被使用或直接访问

2、init函数(方法)支持带参数的类的初始化 ,也可为声明该类的属性

3、init函数(方法)的第一个参数必须是 self(self为习惯用法,也可以用别的名字),后续参数则可 以自由指定,和定义函数没有任何区别。

# 不带参数
class Sample:
    def __init__(self):
        print("自动调用构造方法")
        # 定义了一个实例属性
        self.name = "小明"

test = Sample()
print(test.name)

# 输出结果
自动调用构造方法
小明

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

构造函数__init__为什么会存在?

顾名思义,就像房子必须有地基、框架、大梁一样,是房子的基础,实例对象也需要有的构造的基础,这就是构造函数的作用,给实例对象最原始的属性。

所以综上,「构造方法__init__用于创建实例对象时使用,每当创建一个类的实例对象时,Python 解释器都会自动调用它,用来初始化对象的某些属性。」



推荐阅读

(点击标题可跳转阅读)

干货 | 公众号历史文章精选

我的深度学习入门路线

我的机器学习入门路线图


重磅

AI有道年度技术文章电子版PDF来啦!



扫描下方二维码,添加 AI有道小助手微信,可申请入群,并获得2020完整技术文章合集PDF(一定要备注:入群 + 地点 + 学校/公司。例如:入群+上海+复旦。 


长按扫码,申请入群

(添加人数较多,请耐心等待)



感谢你的分享,点赞,在看三  

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/129193