python中的self理解
Posted littlegreenorc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中的self理解相关的知识,希望对你有一定的参考价值。
前言
先介绍下类和实例
面向对象最重要的概念就是类(class)和实例(instance),类时抽象的模板,比如学生这个抽象的事物,可以用一个student类来表示。而实例时根据类创建出来的一个个具体的“对象”,每一个对象都从类中继承有相同的方法,但各自的数据可能不同(根据各自的参数来定)。
1 class Student(object): 2 pass
1)定义了Student类
(object)表示该类从那个类继承下来的,object类是所有类都会继承的类
1 student=Student()
2)student为定义的实例,通过Student类创建出student实例,语法:创建实例是通过类名+()
1 class Student(object): 2 def __init__(self,name,score): 3 self.name =name 4 self.score = score
3)Student类起到模板的作用,在创建实例的时候,把我们认为必须绑定的属性强制填写进去,用到了python中的一个内置方法__init__方法;在__init__方法的第一个参数永远是self,表示创建的类实例的本身,有了__init__方法在创建实例的时候就不能传入空的参数,必须传入和__init__方法匹配的参数。
1 >>>student = Student("Hugh", 99) 2 >>>student.name 3 "Hugh" 4 >>>student.score 5 99
1.函数和类中的方法的区别
类中的方法必须有一个额外的第一个参数的名称,一般就是self,调用这个方法时,不会为这个参数赋值,这个特别的变量就是指对象本身。
所以
类的方法一般需要添加self,而普通的方法不要添加self。
例如:
1 class Test(object): #创建个类 2 3 def add(self,a,b):#类中的方法 4 5 print (a+b) 6 def display(self): 7 8 print("hello") 9 test = Test()#创建实例 10 11 test.add(1,2)#调用类中的方法 12 13 test.display() 14 15 #如果去掉self,会报运行错误 16 17 def add02(a,b):#普通的方法,不要添加self 18 19 print (a+b)
"‘假如一个类称为MyClass和这个类的一个实例MyObject。当你调用这个对象的方法MyObject.method(arg1, arg2)的时候,这会由Python自动转为MyClass.method(MyObject, arg1, arg2)——这就是self的原理了"‘
2.类中为何要__init__初始化
1)支持带参数的类的初始化
2)实现类本身相关内容的初始化
当一个Class,稍微复杂一点的时候,或者内部函数需要用得到的时候,往往都需要在,别人实例化你这个类之前,使用你这个类之前,做一些基本的,与自己的类有关的,初始化方面的工作。
而这部分工作,往往就放到__init__函数中去了。
以上是关于python中的self理解的主要内容,如果未能解决你的问题,请参考以下文章
不会还有人不知道python类中的self到底是干啥的吧?(详细理解)
调用模板化成员函数:帮助我理解另一个 *** 帖子中的代码片段
Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段