码迷,mamicode.com
首页 > 编程语言 > 详细

python类继承与重构

时间:2018-06-13 23:38:02      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:创建   instance   类的属性   派生类   定义   需要   子类   .class   employee   

python类继承与重构

0 对象

  • 通过类定义的数据结构实例。
  • 对象包括两个数据成员(类变量和实例变量)和方法。

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

self代表类的实例,而非类

  • 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。
class Test:
    def prt(self):
        print(self)
        print(self.__class__)
 
t = Test()
t.prt()

以上实例执行结果为:

<__main__.Test instance at 0x10d066878>
__main__.Test
  • 从执行结果可以很明显的看出,self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类。
  • self 不是 python 关键字,我们把他换成 runoob 也是可以正常执行的:

  • 你可以添加,删除,修改类的属性。

类的继承

  • 在python中继承中的一些特点:
  1. 在继承中基类的构造(init()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用。
  2. 在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。区别在于类中调用普通函数时并不需要带上self参数
  3. Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中找)。

1 方法重写

  • 如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。

python类继承与重构

标签:创建   instance   类的属性   派生类   定义   需要   子类   .class   employee   

原文地址:https://www.cnblogs.com/monkey-moon/p/9180502.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!