在开始讲解二者的关系之前,我们先来把它们的基本意思弄清楚。_init_是我们在python类中的一个方法,self大家简单的理解为参数就可以了。那么在使用_init_的时候,就不可避免的要讨论参数的问题。下面我们在了解了_init_的用法,然后借助_init_和self在实例中的关系帮助大家理解。
1._init_基本用法
class Person(object): """Silly Person""" def __init__(self, name, age): self.name = name self.age = age def __str__(self): return '<Person: %s(%s)>' % (self.name, self.age) if __name__ == '__main__': piglei = Person('piglei', 24) print piglei
2.__init__和self实例
__init__存在的意义,往往是赋值,或者作为启动内部方法用的做个比喻,你建立一个类,就像建立了一个班级,每个实例,就是一个学生,但只要学生进入了班级,就要先给他发一套,对应这个班级要上课的书,那么这个过程,发书,赋值,就是在init里面做至于self,就是代表这一个学生,一个学生,首先每个学生有每个学生的属性,每次运行实例方法的时候,或者改变实力属性的时候,只是改变他自己的,不能一个学生考试不及格,全班都算挂科吧?
class xuesheng: def __init__(self,n): self.yuwen=n def chengji(self): print(self.yuwen) a=xuesheng(100) b=xuesheng(20) a.chengji() b.chengji()
一个学生,考试100分,一个学生,考试20分。
他们都是,在init里面赋值的,而且是赋值给self,就是这个实例。
然后,想查看他们成绩,在调用一个成绩方法,打印出来的时候,就是他们各自,自己的成绩,这个时候,要调用self的属性,如果没有self,就凉凉了。
相信经过把_init_和self放在现实实例结合代码的运行,很多小伙伴已经能理解二者的关系了,这比我们直接用概念和代码分享给大家的效果要好很多。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试