1. # -*- coding=  utf-8 -*-
  2. # 文件编码定义的语法规则是: coding[:=]/s*([-/w.]+)
  3. # 未指定编码将默认为 : ASCII
  4. # 同时要注意物理文件的编码也要符合本语言指定的编码
  5. # 更多可参考: http://python.org/dev/peps/pep-0263/
  6. class CBase:
  7. '''''资源相关类'''     # 通过CBase.__doc__ 或者类实例.__doc__ 可以输出此说明
  8. counter = 0;    # 这是属于类的变量,相当于c++的静态变量,公有
  9. __counter = 1;  # 变量前加双下划线,将被认为是私有变量
  10. # 在类外不能访问,否则认为是公有的变量
  11. #在Python 中的 __init__相当于C++的constructor,
  12. #在__init__中定义的是对象的变量,相当于c++的普通变量
  13. def __init__(self,name):
  14. self.name = name        # 普通对象变量,公有
  15. self.__private1 = 2     # 私有普通变量,私有
  16. print('__init__ base')
  17. # __del__ 相当于c++的destructor
  18. def __del__(self):
  19. print(' base destruct')
  20. # 任何一个类方法必须至少有一个参数
  21. #   这个参数相当于C++的this指针
  22. #   这个参数必须是第一个参数
  23. #   约定通常写作self
  24. def Help(self):
  25. '''''Help doc'''      # 方法的doc,引用语法 [类名|实例].方法名.__doc__
  26. print('---base help begin---/n',self.name)     # 在这儿引用类普通变量
  27. print(CBase.__counter) # 即便是本类的方法引用自己的静态变量,
  28. # 也需要加类名或者self 限定
  29. print(self.__private1)  #私有变量只有本类方法有权限引用
  30. print('---base help end---/n')
  31. def Test(self):
  32. print('Base Test')
  33. # 类的继承
  34. # 可进行多重继承,语法class CC(CA,CB)
  35. class CHigh(CBase):
  36. def __init__(self):
  37. CBase.__init__(self,'high') # 调用基类的构造时,要手动传入第一个参数
  38. print('__init__ high')
  39. def __del__(self):
  40. #CBase.__del__(self), 基类的析构函数是不能调用的
  41. # 基类的析构的函数也不会被自动调用
  42. print(' High destruct')
  43. # 继承类的方法会覆盖掉基类的同名方法
  44. def Test(self):
  45. print('High Test ')
  46. # python没有方法重载的概念
  47. # 源文件中最后一个定义的方法将会覆盖掉之前的同名方法
  48. # 现在在调用Test,必须传递第二个参数name
  49. # 上面的具有一个参数的Test方法被覆盖掉了.
  50. def Test(self,name):
  51. print('High Test have arg:',name)
  52. rh = CHigh()
  53. #rh = CBase('hello')
  54. rh.Help()
  55. rh.Test();
  56. print(CBase.counter)
  57. print(rh.name)

Python 笔记 : 类和继承的更多相关文章

  1. Python笔记——类定义

    Python笔记——类定义 一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属 ...

  2. Python 基础 类的继承

    如果寂静定义了Person类,需要定义新的Student 和Teacher 类时 可以直接从Person 中继承 class Person(Object): def __init__(self,nam ...

  3. 【python】-- 类的继承(新式类/经典类)、多态

    继承 之前我们说到了类的公有属性和类的私有属性,其实就是类的封装,现在准备随笔的 是继承,是面向对象的第二大特性. 面向对象编程 (OOP) 语言的一个主要功能就是“继承”.继承是指这样一种能力:它可 ...

  4. python基础--类的继承以及mro

    继承: 什么是继承: 继承是一种关系,描述两个对象之间什么是什么的关系 在程序中,继承描述的是类和类之间的关系 例如 a继承了b,a就能直接使用b已经存在的方法和属性了 a称之为子类,b称之为父类,成 ...

  5. Python——12类的继承

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  6. Python的类和继承

    一.类的封装: 封装将类的信息隐藏在类内部,不允许外部直接修改该类的变量,只能通过该类提供的方法来实现对隐藏信息的操作和访问 class Boss(): # 类的公共属性 level=1 # 类的初始 ...

  7. ES6-11学习笔记--类与继承

    ES5 中的类与继承: 类的定义: function People(name, age) { // this指向当前实例化对象 console.log(this); // 实例属性 this.name ...

  8. 【python】类的继承和多态

    比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印: class Animal(object): def run(self): print 'Animal is r ...

  9. Python 派生类子类继承类

    1.创建list类的子类Namedlist,初始化新类,创建新对象实例johnny,检查对象类型,并使用list的一些功能来存储数据 >>> class Namedlist(list ...

随机推荐

  1. 【PHPsocket编程专题(实战篇②)】兼容 Curl/Socket/Stream 的 HTTP 操作类[转]

    <?php /************************************************************ * 描述:HTTP操作类 * 作者:heiyeluren ...

  2. Java并发:Callable、Future和FutureTask

    Java并发编程:Callable.Future和FutureTask 在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口. 这2种方式都有一 ...

  3. C++:静态成员

    3.7.1 静态数据成员对象是类的一个实例,每个对象都具有自己的数据成员.例如,学生类张三或李四都具有自己的学号,姓名和平均成绩.在实际使用时,常常还需要一些其他的数据项,比如学生人数.总成绩.平均成 ...

  4. 《Linux/Unix系统编程手册》读书笔记1

    <Linux/Unix系统编程手册>读书笔记 目录 最近这一个月在看<Linux/Unix系统编程手册>,在学习关于Linux的系统编程.之前学习Linux的时候就打算写关于L ...

  5. apk反编译(4)Smali代码注入

    转自 : http://blog.sina.com.cn/s/blog_5674d18801019i89.html 应用场景 Smali代码注入只能应对函数级别的移植,对于类级别的移植是无能为力的.具 ...

  6. windows线程同步

    一.前言 之前在项目中,由于需要使用到多线程,多线程能够提高执行的效率,同时也带来线程同步的问题,故特此总结如下. 二.windows线程同步机制 windows线程同步机制常用的有几种:Event. ...

  7. 1033. Labyrinth(dfs)

    1033 简单dfs 有一点小小的坑 就是图可能不连通 所以要从左上和右下都搜一下 加起来 从讨论里看到的 讨论里看到一句好无奈的回复 “可不可以用中文呀...” #include <iostr ...

  8. bzoj1562

    很明显是二分图匹配,关键是怎么求字典序最小 想到两种做法,首先是直接匹配,然后从第一位贪心调整 第二种是从最后一个倒着匹配,每次匹配都尽量选小的,这样一定能保证字典序最小 type node=reco ...

  9. jquery dialog-优雅的弹出框

    前面一章已经对datepicker的使用,做了简单的说明.这一章主要对dialog如何使用做个说明.         jquery ui-dialog在web开发中运用还是比较多的.最常见的例子就是登 ...

  10. 通过AJAX与ASP.NET结合实现的仿GridView增删改查功能

    jQurey代码部分: 1.    <script type="text/javascript"> 2.            var flag = 0; 3. 4.  ...