本文作者:云初冀北

python 中 __init__的意义以及作用

python 中 __init__的意义以及作用摘要: python 中 __init__的用法和含义python 中 __init__ 与PHP中的构造函数相似__construct()都具有初始化的作用。1.python中的__in...

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

mynameis 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__用法内容请搜索云初冀北以前的文章或继续浏览下面的相关文章希望大家以后多多支持云初冀北!

免责声明
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:Goliszhou@gmail.com
$

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,106人围观)参与讨论

还没有评论,来说两句吧...