Python中self的用法

矫情吗;* 2022-10-09 03:11 215阅读 0赞

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

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

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

  1. class Personobject):
  2.   pass

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

  1. ''' Python学习交流,免费公开课,免费资料, 免费答疑,系统学习加QQ群:579817333 '''
  2. class Person(object):
  3.   pass
  4. student = Person() # 创建类的实例化
  5. print(student)
  6. print(Person)

3、给实例变量绑定属性

比如:为 student 绑定 name 和 sex属性

  1. class Person(object):
  2.   pass
  3. student = Person()
  4. # print(student)
  5. # print(Person)
  6. student.name = "Gavin" # 为实例变量 student 绑定 name 属性,类似于赋值操作
  7. student.sex = # 为其绑定 score 属性
  8. print(student.name)
  9. print(student.sex)

上述的方法虽然可以为类的实例变量绑定属性,但是不够方便。

由于类 可以起到模板的作用,所以在创建实例的时候,可以将我们认为必须绑定得属性强制填写进去,在python中,是通过类中通常都会使用的一个方法,即def __init__(self)方法,在创建实例变量的时候,就把 name 和 sex等属性绑上去。

  1. class Person(object):
  2.   def __init__(self,name,sex):
  3.     self.name = name
  4.     self.sex = sex
  5. student = Person('Gavin',男) # 传入 __init__ 方法中需要的参数
  6. print(student.name)
  7. print(student.sex)

传入空参数的情况,会报错:

  1. ''' Python学习交流,免费公开课,免费资料, 免费答疑,系统学习加QQ群:579817333 '''
  2. class Person(object):
  3.   def __init__(self,name,score):
  4.     self.name = name
  5.     self.sex = sex
  6. student = Person() # 此处应该有参数传入,却没有传
  7. print(student.name)
  8. print(student.sex)

注意:

1、__init__方法的第一个参数永远是 self ,表示创建的实例本身,因此,在 __init__方法的内部,就可以把各种属性绑定到 self,因为 self 就指向创建的实例本身。

2、使用了 __init__方法,在创建实例的时候就不能传入 空的参数了,必须传入与 __init__方法匹配的参数,但是 self 不需要传,python解释器会自己把实例变量传进去。

  1. class Person(object):
  2. def __init__(self,x,y):
  3. self.x = x
  4. self.y = y
  5. def add(self):
  6. sum = self.x + self.y
  7. return sum
  8. def square(self):
  9. squr = pow(self.x,2)+pow(self.y,2)
  10. return squr
  11. def add_square(self):
  12. c = self.add()+self.square()
  13. return c
  14. student = Person(3,4)
  15. print(student.add())
  16. print(student.square())
  17. print(student.add_square())

运行结果:

在这里插入图片描述

通过上述的例子可以看出,与普通的函数相比,在类中定义的函数只有两点不同:

1、第一个参数永远是 self ,并且调用时不用传递该参数

2、在类中函数相互调用要加 self ,如上例中: c = self.add()+self.square(), 不加 self ,会报错

发表评论

表情:
评论列表 (有 0 条评论,215人围观)

还没有评论,来说两句吧...

相关阅读

    相关 python self 含义

    现象:Python编写类的时候,类成员函数的第一个参数都是self。 说明:首先明确的是self只有在类的方法中才会有,独立的函数或方法是不必带有self的。self在定义类

    相关 Pythonself详解

    一、概念 哪个对象调用了方法,方法里的`self`指的就是谁。 通过 `self.属性名` 可以访问到这个对象的属性。 通过 `self.方法名()` 可以调用这个对

    相关 Pythonself

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

    相关 Pythonself,cls参数

    python类里会出现这三个单词,self和cls都可以用别的单词代替,类的方法有三种, 一是通过def定义的 普通的一般的,需要至少传递一个参数,一般用self,这样的方法

    相关 Pythonself使用时机

    其实,连看了几篇说了好多。我自己觉得就一点最实用: 前缀加了self的变量就成为了全局变量,随处可以调用。 没加前缀self的变量只能局限在其所在的那一层里使用,其他处没法

    相关 pythonself

    python中的self代表类的实例,处理代码中可以使用self+“."+类中的方法的方式调用函数。 self代表类的实例,并非类本身 例如: class T