python__init__到底是干什么的?

来源:千锋教育
发布时间:2023-11-10 18:30:50
分享

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

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

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

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

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

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

def__init__(self,name):

'''Initializestheperson'sdata.'''

self.name=name

print'(Initializing%s)'%self.name

#Whenthispersoniscreated,he/she

#addstothepopulation

Person.population+=1

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

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

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

classBox:

defsetDimension(self,width,height,depth):

self.width=width

self.height=height

self.depth=depth

defgetVolume(self):

returnself.width*self.height*self.depth

b=Box()

b.setDimension(10,20,30)

print(b.getVolume())

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

classBox:

#defsetDimension(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

defgetVolume(self):

returnself.width*self.height*self.depth

b=Box(10,20,30)

print(b.getVolume())

以上内容为大家介绍了Python培训之__init__到底是干什么的?,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • python海象运算符的使用 python海象运算符的使用1、在判断条件下允许操作。在一定程度上简化了代码,但降低了可读性。i=len((l:=[1,2,3]))#先对l进行赋值,在对i赋值while(i:=i-1)>=0:#允许
  • python静态web服务器如何实现 python静态web服务器如何实现的方法:1、编写TCP服务器程序。2、获取浏览器发送的http请求消息数据。3、读取固定的页面数据,将页面数据组装成HTTP响应消息数据并发送给浏览器。4、HTTP
  • python语言的全排列怎么提速? python从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。显然全排列很费时,这里用到了yield方法,全
  • python怎么将图片转换成base64编码 该模块提供了基于rfc3548的Base16,32,64编解码的接口。该模块提供两套接口,传统接口基于rfc1521的Base64,当前接口基于rfc3548的Base16/32/64编码规范。pyt
  • python怎么实现模式匹配 python通过BF算法实现关键词匹配,BF算法,即暴风(BruteForce)算法,是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S
  • pythoncomplex函数有什么用? python的complex函数可以使用参数real+imag*j方式创建一个复数。也可以转换一个字符串的数字为复数;或者转换一个数字为复数。如果第一个参数是字符串,第二个参数不用填写,会解释这个字符