01月11日 四周四次【Python基础进阶】

3.1/3.2 类的继承
3.3 类的属性总结
3.4 类的方法总结

3.1/3.2 类的继承

类的继承

  • 继承是面向对象的重要特点之一
  • 继承关系: 继承是相对两个类而言的父子关系,子类继承父类所有的公有属性和方法
  • 继承实现代码重用

    使用继承

  • 继承可以重用已经存在的数据和行为,减少代码的重复编写.Python在类名后使用一对括号来表示继承关系,括号中的类即为父类
  • class Myclass(ParentClass)
    • 如果父类定义了int方法,子类必须显示调用父类的init方法

      • ParentClass.init(self,[args...])
    • 如果子类需要扩展父类的行为,可以添加init方法的参数
      class People (object):
      color = ‘yellow‘
      def __init__(self, c):
      print("Init...")
      self.dwell = ‘Earth‘
      def think(self):
      print("I am a %s"%self.color)
      print("I am a thinker")
      class Chinese(People):
      def __init__(self):
      People.__init__(self,‘red‘)
      pass
      cn = Chinese()
      print(cn.color)
      print(cn.dwell)
      cn.think()

      super函数

      class A(Object):
      def __init__(self):
      print ("enterA")
      print ("leaveA")
      class B(A):
      def __init__(self):
      print ("enetrB")
      super(B,self).__init__()
      print ("leaveB")
      b =  B()
      ###############
      class People (object):
      color = ‘yellow‘
      def __init__(self, c):
      print("Init...")
      self.dwell = ‘Earth‘
      def think(self):
      print("I am a %s"%self.color)
      print("I am a thinker")
      class Chinese(People):
      def __init__(self):
      super(Chinese, self).__init__(‘red‘)
      pass
      cn = Chinese()

      多重继承

  • python支持多重继承, 即一个类可以继承多个父类
  • 语法
    • class class_name(Parent_c1,Parent_c2,...)
  • 注意:
    • 当父类中出现多个自定义的init方法时,多重继承只执行第一个init方法,其他的不执行

      class People (object):
      def __init__(self):
      self.dwell = ‘Earth‘
      self.color = ‘yellow‘
      def think(self):
      print("I am a %s"%self.color)
      print("My home is %s"%self.dwell)
      class Martian(object):
      color = ‘red‘
      def __init__(self):
      self.dwell = ‘Martian‘
      def talk(self):
      print("I LIKE")
      class Chinese(Martian,People):
      def __init__(self):
      People.__init__(self)
      cn = Chinese()
      cn.think()
      cn.talk()

3.3 类的属性总结

  • 类属性,也是共有属性
  • 类的私有属性
  • 对象的共有属性
  • 对象的私有属性
  • 内置属性
  • 函数的局部变量
  • 全局变量

3.4 类的方法总结

  • 公有方法
  • 私有方法
  • 类方法
  • 静态方法
  • 内置方法

原文地址:http://blog.51cto.com/13542406/2059858

时间: 2024-11-08 19:54:57

01月11日 四周四次【Python基础进阶】的相关文章

01月05日 三周四次【Python基础进阶】

1.8 递归列出目录里的文件1.9 匿名函数 1.8 递归列出目录里的文件 #### 遍历目录里的文件(不支持子目录文件) import os for i in os.listdir('C:/Users/Administrator/Desktop/技术文档'): print (i) ########################################### #### 目录是否存在 import os d = os.path.isdir('C:/Users/Administrator/

01月12日 四周五次【Python基础进阶】

3.5 rc脚本(类的定义与脚本的结构)3.6 rc脚本(start方法)3.7 rc脚本(stop和status方法)3.8 rc脚本(以daemon方式启动) 3.5 rc脚本(类的定义与脚本的结构)/3.6 rc脚本(start方法)/3.7 rc脚本(stop和status方法) import sys import os from subprocess import Popen, PIPE class Process(object): '''memcached rc script'''

01月09日 四周二次

2.5/2.6 模块使用2.7 面向对象介绍 2.5/2.6 模块使用 模块 模块是python组织代码的基本方式 一个python脚本可以单独运行,也可以导入到另一个脚本中运行,当脚本被导入运行时,我们将其城为模块(module) 所有的.py文件都可以作为一个模块导入 模块名与脚本的文件名相同 例如我们编写了一个名为hello.py的脚本,则可以在另一个脚本中用import hello语句来导入它 包 python的模块可以按目录组织为包 创建一个包的步骤: 创建一个名字为包名的目录 在该目

C语言第七天笔记2016年01月21日(周四)P.M

1. 内存分配: C++里面使用new  delete 注意: #include <iostream> #include"stdlib.h" using namespace std; int main(int argc, char *argv[]) { int* p=new int(5); //申请了一个数组大小的堆空间,数组中的元素为int类型,元素个数为5. int* q=new int[5]; //申请了一个数组大小的堆空间,数组中的元素为int类型,元素个数为5.

C语言第三天笔记2016年01月14日(周四)P.M

1. 二维数组: 例:int a[5][6] :5行6列 在物理内存中存储时,以一位数组的形式存放. 注:初始化时行数可省,列不能空,数组名不可赋值 2. continue:结束本次循环  即直接返回至判断条件 while: 使用条件内的数字初始化数组元素. break:跳出整个循环 3. 函数:用来实现指定功能的代码模块. 函数返回值的个数最多有一个 函数声明:return-type function-name(argument declarations); 返回值类型 函数名(参数列表) 函

C语言第三天笔记2016年01月14日(周四)A.M

1. while循环:当型循环 先执行判断条件,循环体可能一次都不会执行 do-while循环:直到型循环 先执行循环体后判断条件,循环体至少会执行一次. 2. for循环: for (expr1; expr2; expr3) statement //循环体 expr1:初始化循环控制变量(可选) expr2:循环判断条件(可省)若省略判断条件永真,有可能导致死循环 expr3:修改循环控制变量(可省) 在循环结构中,必须有修改循环控制变量的操作. break:退出整个循环 练习:9*9乘法表

旧文-编译make2yaffsimage-2010年01月11日 19:19

最近弄yaffs,但是CVS上下的无法编译make2yaffsimage,提示yaffs_PackTags2()函数传入的参数不对,看源代码发现,传入的参数少一个,google了一下,解决了问题,详见以下patch: diff --git a/utils/mkyaffs2image.c b/utils/mkyaffs2image.c index 9939658..5b6c0c6 100644 --- a/utils/mkyaffs2image.c +++ b/utils/mkyaffs2imag

五周第四次课(1月11日) 8.6 管道符和作业控制 8.7/shell变量 8.8 shell变量 8.9 环境变量配置文件

五周第四次课(1月11日)8.6 管道符和作业控制8.7/shell变量8.8 shell变量8.9 环境变量配置文件扩展bashrc和bash_profile的区别 http://ask.apelearn.com/question/7719 简易审计系统: http://www.68idc.cn/help/server/linux/2014042190951.html 关于PROMPT_COMMAND环境变量的含义 http://www.linuxnote.org/prompt_command

接口2014年6月11日01:11:37

1 [1]C#中的接口和类有什么异同. 2 3 不同点: 4 不能直接实例化接口. 5 接口不包含方法的实现. 6 接口可以多继承,类只能单继承. 7 类定义可在不同的源文件之间进行拆分(partial). 8 9 相同点: 10 接口.类和结构都可以从多个接口继承. 11 接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员. 12 接口和类都可以包含事件.索引器.方法和属性(属性本质上是两个方法). 13 14 基础知识:接口只能定义方法(只能定义行为,不能定义实现也就是字段