Python self参数

Self 是什么

​ 类的所有实例方法都必需至少带有一个名为self的参数,且必需是该方法的第一个形参(如果有多个形参),self 和对象指向同一个内存地址,self参数代表对象本身。

python在定义类的过程中,无论是显式创建类的构造方法,还是向类中添加实例方法,都要求将 self 参数作为方法的第一个参数。
如下创建一个类,里面有类的构造方法和实例方法。

class Person:
		    def __init__(self):
		        print("正在执行构造方法")
		    # 定义一个study()实例方法
		    def study(self,name):
		        print(name,"学Python")

Python 只是规定无论是构造方法还是实例方法,最少要包含一个参数,并没有规定该参数的具体名称。之所以将其命名为 self,只是程序员之间约定俗成的一种习惯,遵守这个约定,可以使我们编写的代码具有更好的可读性。
如果你接触过其他面向对象的编程语言(例如 C++),其实 Python 类方法中的 self 参数就相当于 C++ 中的 this 指针。

同一个类可以产生多个对象,当某个对象调用类方法时,该对象会把自身的引用作为第一个参数自动传给该方法,换句话说,Python 会自动绑定类方法的第一个参数指向调用该方法的对象。如此,Python解释器就能知道到底要操作哪个对象的方法了。因此,程序在调用实例方法和构造方法时,不需要手动为第一个参数传值。

对于构造函数中的 self 参数,其代表的是当前正在初始化的类对象。

class Person:
    name = "xx"
    def __init__(self,name):
        self.name=name

zhangsan1 = Person("zhangsan1")
print(zhangsan1.name)
lisi = Person("lisi")
print(lisi.name)

zhangsan1 在进行初始化时,调用的构造函数中 self 代表的是 zhangsan;而 lisi 在进行初始化时,调用的构造函数中 self 代表的是 lisi

如果你要用self参数,很感人会有很多如下:
在这里插入图片描述

也不知道这样好不好,慢慢来吧!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python函数中的`self`参数是一个约定俗成的参数名称,用于表示对象本身。在Python类中定义的方法,第一个参数必须是`self`,它表示实例化后的对象。 当我们调用一个对象的方法时,Python会自动将该对象作为第一个参数传递给方法,我们可以使用`self`参数来访问该对象的属性和调用其他方法。 `self`参数的命名并不是固定的,可以使用任意合法的变量名,但是为了遵循约定俗成的规范,大多数开发者都会将其命名为`self`。 通过使用`self`参数,可以在一个类的多个方法之间共享属性值,同时也方便了类的实例化和方法的调用。 例如,假设我们有一个类`Person`,其中有一个方法`hello`: ```python class Person: def __init__(self, name): self.name = name def hello(self): print("Hello, my name is", self.name) ``` 在这个例子中,`__init__`方法用于初始化对象的属性`name`,`hello`方法使用`self.name`打印对象的名字。 当我们实例化一个`Person`对象,并调用`hello`方法时,`self`参数会自动指向该对象,并且可以访问到该对象的属性: ```python person = Person("Alice") person.hello() # 输出:Hello, my name is Alice ``` 总之,`self`参数Python的类方法中起到了指向对象本身的作用,通过它可以访问对象的属性和调用其他方法。在类的实例化和方法调用过程中,`self`参数自动传递并指向该对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值