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__用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Pandas过滤dataframe中包含特定字符串的数据方法
今天小编就为大家分享一篇Pandas过滤dataframe中包含特定字符串的数据方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-11-11Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
这篇文章主要介绍了Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法,涉及Python针对mysql数据库的连接、查询、csv格式数据文件的生成等相关操作技巧,需要的朋友可以参考下2018-01-01Python Web框架Pylons中使用MongoDB的例子
这篇文章主要介绍了Python Web框架Pylons中使用MongoDB 的例子,大家参考使用2013-12-12
最新评论