这篇文章主要介绍“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__方法的作用等同于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__的意义及作用是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。