Python 面向对象 self

忘是亡心i 2021-12-14 17:57 282阅读 0赞
  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. class Employee:
  4. '所有员工的基类'
  5. empCount = 0
  6. def __init__(self, name, salary):
  7. self.name = name
  8. self.salary = salary
  9. Employee.empCount += 1
  10. def displayCount(self):
  11. print "Total Employee %d" % Employee.empCount
  12. def displayEmployee(self):
  13. print "Name : ", self.name, ", Salary: ", self.salary
  • empCount 变量是一个类变量,它的值将在这个类的所有实例之间共享。你可以在内部类或外部类使用 Employee.empCount 访问。
  • 第一种方法__init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法
  • self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。

self代表类的实例,而非类

类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。

  1. class Test:
  2. def prt(self):
  3. print(self)
  4. print(self.__class__)
  5. t = Test()
  6. t.prt()

以上实例执行结果为:

  1. <__main__.Test instance at 0x10d066878>
  2. __main__.Test

从执行结果可以很明显的看出,self 代表的是类的实例,代表当前对象的地址,而 self.__class__ 则指向类。

self 不是 python 关键字,我们把他换成 runoob 也是可以正常执行的:

实例

  1. class Test:
  2. def prt(runoob):
  3. print(runoob)
  4. print(runoob.__class__)
  5. t = Test()
  6. t.prt()

以上实例执行结果为:

  1. <__main__.Test instance at 0x10d066878>
  2. __main__.Test

发表评论

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

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

相关阅读

    相关 python面向对象

    我们总是说python是一门面向对象的编程语言,那么,怎么来理解面向对象呢? 首先,要解决这个问题就要从根源出发,理解面向对象的定义。面向对象编程——Object Orien

    相关 Python面向对象

    Python面向对象 每次默认调用的方法是new,程序先调new再掉init init可以完成参数赋值等一些基本的初始化工作 init和new的参数要保持一致 创

    相关 python面向对象

    面向对象 面向对象概念 面向对象 是一种变成思想,是对现实世界中的事物进行抽象的方式。应用到代码编程设计中,是一种建立现实世界事物模型的方式。 面向对象和面向过程区别 面...