Python中的self使用注意事项

╰+哭是因爲堅強的太久メ 2022-05-16 05:58 341阅读 0赞

self的使用要点

1.Python中的self等同于Java中的this,表示当前对象,当前正在操作的对象,而不是当前类

2.某个对象调用其方法时,python解释器会把这个对象作为第一个参数传递给self,所以开发者只需要传递后面的参数即可

  1. class Person4:
  2. # def __init__(self): 注意一个类不能有两个初始的构造方法,跟java有区别。
  3. def __init__(self,name,age): #只是在Java中self不用书写,也不用传参。
  4. self.name = name
  5. self.age = age
  6. def my_print(self): #类中所有def定义的方法,参数都要带self,而且要放在第一位。
  7. print("这是类内的方法")
  8. print(self.__class__) #调用当前类方法
  9. def my_p(): #类外的def定义方法(函数),参数不用带self
  10. print("这是类外的方法")
  11. #----------创建对象,调用方法-------------------------------------------------------------
  12. #p4 = Person4() #如果不传参数,则会报错,因为默认要给类初始化两个属性值
  13. p4 = Person4("jason",12)
  14. p4.my_print()
  15. #p4.my_p() 这种调用的是错误的,因为my_p()方法是类方法,所以不能用实例.方法名调用
  16. my_p()
  17. #----------执行结果--------------------------------------------------------------------
  18. 这是类内的方法
  19. <class '__main__.Person4'>
  20. 这是类外的方法

3.self 不是 python 关键字,我们把他换成 abc 也是可以正常执行的,但是约定俗成的都是self,IDE也会自动填充self的

  1. class Person5:
  2. def p(self):
  3. print("self 可以换成别的,但是不要乱换")
  4. def p1(abc):
  5. print("换成 abc也可以")
  6. def __init__(abc,name,age): #注意这里如果换成abc,那么赋值调用也要对应用abc.name。
  7. abc.name = name
  8. abc.age = age
  9. #---创建对象-----------------------------------------------------------------------
  10. p5 = Person5("tom",11)
  11. p5.p()
  12. p5.p1()
  13. print(p5.name,p5.age)
  14. #---结果时-------------------------------------------------------------------------
  15. self 可以换成别的,但是不要乱换
  16. 换成 abc也可以
  17. tom 11

统一声明:关于原创博客内容,可能会有部分内容参考自互联网,如有原创链接会声明引用;如找不到原创链接,在此声明如有侵权请联系删除哈。关于转载博客,如有原创链接会声明;如找不到原创链接,在此声明如有侵权请联系删除哈。

发表评论

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

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

相关阅读

    相关 Pythonself使用时机

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