Python中的__init__作用是什么

 更新时间:2020年06月09日 15:24:38   作者:silencement  
在本篇文章里小编给大家分享的是关于Python中的__init__作用以及相关用法内容,需要的朋友们可以学习下。

看到Python中有个函数名比较奇特,__init__我知道加下划线的函数会自动运行,但是不知道它存在的具体意义..

Python中所有的类成员(包括数据成员)都是 公共的 ,所有的方法都是 有效的 。

只有一个例外:如果你使用的数据成员名称以 双下划线前缀 比如__privatevar,Python的名称管理体系会有效地把它作为私有变量。

这样就有一个惯例,如果某个变量只想在类或对象中使用,就应该以单下划线前缀。而其他的名称都将作为公共的,可以被其他类/对象使用。记住这只是一个惯例,并不是Python所要求的(与双下划线前缀不同)。

同样,注意__del__方法与 destructor 的概念类似。"

恍然大悟原来__init__在类中被用做构造函数,固定写法,看似很死板,其实有道理

def __init__(self, name):
  '''Initializes the person's data.'''
  self.name = name
  print '(Initializing %s)' % self.name
  # When this person is created, he/she
  # adds to the population
  Person.population += 1

name变量属于对象(它使用self赋值)因此是对象的变量

self.name的值根据每个对象指定,这表明了它作为对象的变量的本质。

例如我们定义一个Box类,有width, height, depth三个属性,以及计算体积的方法:

class Box:
  def setDimension(self, width, height, depth):
    self.width = width
    self.height = height
    self.depth = depth
  def getVolume(self):
    return self.width * self.height * self.depth
b = Box()
b.setDimension(10, 20, 30)
print(b.getVolume())

我们在Box类中定义了setDimension方法去设定该Box的属性,这样过于繁琐,而用__init__()这个特殊的方法就可以方便地自己对类的属性进行定义,__init__()方法又被称为构造器(constructor)

class Box:
  #def setDimension(self, width, height, depth):
  #  self.width = width
  #  self.height = height
  #  self.depth = depth
  def __init__(self, width, height, depth):
    self.width = width
    self.height = height
    self.depth = depth
  def getVolume(self):
    return self.width * self.height * self.depth
b = Box(10, 20, 30)
print(b.getVolume())

知识点扩展:

__init__()要点如下:

1.名称固定,必须为__init__()

2.第一个参数固定,必须为self。self指的就是刚刚创建好的示例对象。

3.构造函数通常用来初始化示例属性,如下代码就是初始化示例属性:

4.通过类名(参数列表),来调用构造函数,调用后,将创建好的对象返回给相应的变量。

5.__init__()方法:初始化创建好的对象,初始化指的是:"给实例属性赋值"

6.__new__()方法:用于创建对象,但我们一般无需定义该方法。

以上就是Python中的__init__作用是什么的详细内容,更多关于Python中的__init__到底是干什么的的资料请关注脚本之家其它相关文章!

相关文章

  • 详解如何在Python中替换文件路径和要读取的行号

    详解如何在Python中替换文件路径和要读取的行号

    这篇文章主要为大家详细介绍了如何在Python中替换文件路径和要读取的行号,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下
    2007-02-02
  • 微软开源最强Python自动化神器Playwright(不用写一行代码)

    微软开源最强Python自动化神器Playwright(不用写一行代码)

    这篇文章主要介绍了微软开源最强Python自动化神器Playwright(不用写一行代码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • pytorch中构建模型的3种方法详解

    pytorch中构建模型的3种方法详解

    这篇文章主要介绍了pytorch中构建模型的3种方法,分别是使用继承nn.Module基类构建自定义模型,使用nn.Sequential按层顺序构建模型或者,继承nn.Module基类构建模型并辅助应用模型容器进行封装(nn.Sequential,nn.ModuleList,nn.ModuleDict),需要的朋友可以参考下
    2023-09-09
  • wxpython+pymysql实现用户登陆功能

    wxpython+pymysql实现用户登陆功能

    这篇文章主要介绍了wxpython+pymysql实现用户登陆功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • numpy matrix和array的乘和加实例

    numpy matrix和array的乘和加实例

    今天小编就为大家分享一篇numpy matrix和array的乘和加实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 详细介绍Python中的set集合

    详细介绍Python中的set集合

    本文详细介绍了Python中set集合的基本概念和详细用法,希望对读者朋友们有所帮助。需要的朋友可以参考下面具体的文章内容
    2021-09-09
  • Python实战之梦幻钢琴小游戏的实现

    Python实战之梦幻钢琴小游戏的实现

    这篇文章主要为大家详细介绍了如何利用Python语言编写一款界面化的(Tkinter)电子钢琴小程序,文中的示例代码讲解详细,感兴趣的可以了解一下
    2023-02-02
  • python查看模块,对象的函数方法

    python查看模块,对象的函数方法

    今天小编就为大家分享一篇python查看模块,对象的函数方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 一文教你解决Python不支持中文路径的问题

    一文教你解决Python不支持中文路径的问题

    Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的解决方法吧
    2025-03-03
  • python数字图像处理之估计噪声参数

    python数字图像处理之估计噪声参数

    这篇文章主要介绍了python数字图像处理之估计噪声参数,图像复原与重建,想了解图像处理的同学,一定要好好看看
    2021-04-04

最新评论