• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

一文读懂Python中的self

python 搞代码 4年前 (2022-01-09) 65次浏览 已收录 0个评论

神奇的self:

在Python类中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self。其作用相当于java中的this,表示当前类的对象,可以调用当前类中的属性和方法。

class是面向对象的设计思想,instance(也即是 object,对象)是根据 class 创建的。

一个类(class)应该包含数据和操作数据的方法,通俗来讲就是属性和函数(即调用方法)。

类 class 中为啥用使用 self ?

在类的代码(函数)中,需要访问当前的实例中的变量和函数,即访问Instance中的:

对应的变量(property):Instance.ProperyNam,去读取之前的值和写入新的值。

调用对应函数(function):Instance.function(),即执行对应的动作。

-> 而需要访问实例的变量和调用实例的函数,当然需要对应的实例Instance对象本身。

-> 而Python中就规定好了,函数的第一个参数,就必须是实例对象本身,并且建议,约定俗成,把其名字写为self。

-> 所以,我们需要self(需要用到self)。

首先,在Python中类的定义:

在python中,类是通过关键字 class 定义的:

class 后面紧跟类名,即 Person,类名通常大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的,通常,如果没有合适的 继承类,就使用 object 类,这是所有类最终都会继承的类。

class Person(object):    pass

将 Person类实例化,创建实例化是通过 类名+() 实现的。

class Person(object):    passstudent = Person()    # 创建类的实例化print(student)print(Person)

可以看到,变量 student 指向的就是一个 Person的 object,后面的 0x0000026EE434D8D0 是内存地址,每个 object 的地址都不一样,而 Person 本身则是一个类。

也可以给实例变量绑定属性,比如:为 student 绑定 name 和 score 属性

class Person(object):    passstudent = Person()# print(student)# print(Person)student.name = "Gavin"     # 为实例变量 student 绑定 name 属性   类似于 赋值 操作student.score = 100        # 为 其绑定  score 属性print(student.name)print(student.score)

上述的方法虽然可以为类的实例变量绑定属性,但是不够方便和elegant , 由于类 可以起到本文来源gaodai$ma#com搞$代*码6网模板的作用,故在创建实例的时候,可以将我们认为必须绑定 属性 强制填写进去,在python中,是通过 类中通常都会使用的一个方法,即def __init__(self) 方法,在创建实例变量的时候,就把 name 和 score 等属性绑上去。

class Person(object):    def __init__(self,name,score):        self.name = name        self.score = score        student = Person('Gavin',100)    #  传入 __init__ 方法中需要的参数print(student.name)print(student.score)

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:一文读懂Python中的self

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址