python 中 __init__的意义以及作用

 更新时间:2023年02月27日 10:09:33   作者:在下刘彦直  
python中的__init__是一个私有函数(方法),访问私有函数中的变量在python中用self,在PHP中用$this,这篇文章主要介绍了python 中 __init__的意义以及作用,需要的朋友可以参考下

python 中 __init__的用法和含义

python 中 __init__  与PHP中的构造函数相似__construct() 

都具有初始化的作用。

1.python中的__init__是一个私有函数(方法),访问私有函数中的变量在python中用self,在PHP中用$this

2.在python类的定义中,一个函数(php叫方法)的参数中必须带有self参数,且self放在第一位

如下例子

class person():

def __init__(self,name,gender,birth,**kw)://可使用 **kw定义关键参数,代表任意参数 ,python中函数的代码块用:php用;

  self.name=name  

  self.gender=gender

  self.birth=birth

  for k,w in kw.iteritems():

    setattr(self,k,w)    //python中是按照缩进来判断代码块的从属

def sayhi(self):

   print 'my name is',self.name

xiaoming = person('Xiao Ming', 'Male', '1991-1-1',job='student',tel='18089355',stdid='15010')  //php中实例类用new,

xiaohong = person('Xiao Hong', 'Female', '1992-2-2') 

print xiaoming.name

print xiaohong.birth

print xiaoming.job

print xiaoming.tel

print xiaoming.stdid

print xiaoming.sayhi()

运行结果如下

Xiao Ming

1992-2-2

student

18089355

15010

my name is Xiao Ming

补充:Python类中__init__()的作用

最开始学习python,认为定义类时__init__方法的作用等同于C中的构造函数,但是使用之后发现也有区别。

# coding:utf-8
class a():
     def __init__(self,name):
         self.name = name
     def get_name(self):
         return self.name
b = a("wang")
print(b.get_name())
 
 
Output:
-----
wang
-----

例如:

执行时的步骤可以理解为;

b = object.__new__(a)
a.__init__(a,"wang")

即__init__的作用是初始化实例后的对象b

在子类不重写__init__方法时,子类会默认调用父类中的__init__方法

子类也可以重写__init__方法,来给子类定义专属属性

当然,上面写的是比较官方的解释

用简单的话来讲,可以理解为,类的属性如果直接写在类里面一般是要有值的。

例如:

class fun()
   a = 3

这样的情况下,类中的属性无法变成变量,当将类的属性以self.a的方式定义到初始化方法中,那属性也可以当成变量

例如:

class fun():
    def __init__(self, a):
 
        self.a = a
f = fun(3)
 
print(f.a)
 
Output:
--
3
--

到此这篇关于python 中 __init__的意义以及作用的文章就介绍到这了,更多相关python 中 __init__用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Pyhton集合set()实现成果查漏的例子

    使用Pyhton集合set()实现成果查漏的例子

    今天小编就为大家分享一篇使用Pyhton集合set()实现成果查漏的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python获取android设备cpu和内存占用情况

    Python获取android设备cpu和内存占用情况

    这篇文章主要介绍了Python获取android设备cpu和内存占用情况,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Python lambda 匿名函数优点和局限性深度总结

    Python lambda 匿名函数优点和局限性深度总结

    这篇文章主要为大家介绍了Python lambda 匿名函数的优点和局限性深度总结,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • 使用pyqt5 tablewidget 单元格设置正则表达式

    使用pyqt5 tablewidget 单元格设置正则表达式

    今天小编就为大家分享一篇使用pyqt5 tablewidget 单元格设置正则表达式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 解决Python2.7读写文件中的中文乱码问题

    解决Python2.7读写文件中的中文乱码问题

    下面小编就为大家分享一篇解决Python2.7读写文件中的中文乱码问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • E: 无法定位软件包 python3-pip问题及解决

    E: 无法定位软件包 python3-pip问题及解决

    这篇文章主要介绍了E: 无法定位软件包 python3-pip问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python实现淘宝秒杀功能的示例代码

    Python实现淘宝秒杀功能的示例代码

    这篇文章主要介绍了Python实现淘宝秒杀功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Python中栈、队列与优先级队列的实现方法

    Python中栈、队列与优先级队列的实现方法

    这篇文章主要给大家介绍了关于Python中栈、队列与优先级队列的实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • python3.7中安装paddleocr及paddlepaddle包的多种方法

    python3.7中安装paddleocr及paddlepaddle包的多种方法

    这篇文章主要介绍了python3.7中安装paddleocr及paddlepaddle包,本文通过多种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • python实现视频分帧效果

    python实现视频分帧效果

    这篇文章主要为大家详细介绍了python实现视频分帧效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05

最新评论