Python 笔记 : 类和继承
- # -*- coding= utf-8 -*-
- # 文件编码定义的语法规则是: coding[:=]/s*([-/w.]+)
- # 未指定编码将默认为 : ASCII
- # 同时要注意物理文件的编码也要符合本语言指定的编码
- # 更多可参考: http://python.org/dev/peps/pep-0263/
- class CBase:
- '''''资源相关类''' # 通过CBase.__doc__ 或者类实例.__doc__ 可以输出此说明
- counter = 0; # 这是属于类的变量,相当于c++的静态变量,公有
- __counter = 1; # 变量前加双下划线,将被认为是私有变量
- # 在类外不能访问,否则认为是公有的变量
- #在Python 中的 __init__相当于C++的constructor,
- #在__init__中定义的是对象的变量,相当于c++的普通变量
- def __init__(self,name):
- self.name = name # 普通对象变量,公有
- self.__private1 = 2 # 私有普通变量,私有
- print('__init__ base')
- # __del__ 相当于c++的destructor
- def __del__(self):
- print(' base destruct')
- # 任何一个类方法必须至少有一个参数
- # 这个参数相当于C++的this指针
- # 这个参数必须是第一个参数
- # 约定通常写作self
- def Help(self):
- '''''Help doc''' # 方法的doc,引用语法 [类名|实例].方法名.__doc__
- print('---base help begin---/n',self.name) # 在这儿引用类普通变量
- print(CBase.__counter) # 即便是本类的方法引用自己的静态变量,
- # 也需要加类名或者self 限定
- print(self.__private1) #私有变量只有本类方法有权限引用
- print('---base help end---/n')
- def Test(self):
- print('Base Test')
- # 类的继承
- # 可进行多重继承,语法class CC(CA,CB)
- class CHigh(CBase):
- def __init__(self):
- CBase.__init__(self,'high') # 调用基类的构造时,要手动传入第一个参数
- print('__init__ high')
- def __del__(self):
- #CBase.__del__(self), 基类的析构函数是不能调用的
- # 基类的析构的函数也不会被自动调用
- print(' High destruct')
- # 继承类的方法会覆盖掉基类的同名方法
- def Test(self):
- print('High Test ')
- # python没有方法重载的概念
- # 源文件中最后一个定义的方法将会覆盖掉之前的同名方法
- # 现在在调用Test,必须传递第二个参数name
- # 上面的具有一个参数的Test方法被覆盖掉了.
- def Test(self,name):
- print('High Test have arg:',name)
- rh = CHigh()
- #rh = CBase('hello')
- rh.Help()
- rh.Test();
- print(CBase.counter)
- print(rh.name)
Python 笔记 : 类和继承的更多相关文章
- Python笔记——类定义
Python笔记——类定义 一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属 ...
- Python 基础 类的继承
如果寂静定义了Person类,需要定义新的Student 和Teacher 类时 可以直接从Person 中继承 class Person(Object): def __init__(self,nam ...
- 【python】-- 类的继承(新式类/经典类)、多态
继承 之前我们说到了类的公有属性和类的私有属性,其实就是类的封装,现在准备随笔的 是继承,是面向对象的第二大特性. 面向对象编程 (OOP) 语言的一个主要功能就是“继承”.继承是指这样一种能力:它可 ...
- python基础--类的继承以及mro
继承: 什么是继承: 继承是一种关系,描述两个对象之间什么是什么的关系 在程序中,继承描述的是类和类之间的关系 例如 a继承了b,a就能直接使用b已经存在的方法和属性了 a称之为子类,b称之为父类,成 ...
- Python——12类的继承
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- Python的类和继承
一.类的封装: 封装将类的信息隐藏在类内部,不允许外部直接修改该类的变量,只能通过该类提供的方法来实现对隐藏信息的操作和访问 class Boss(): # 类的公共属性 level=1 # 类的初始 ...
- ES6-11学习笔记--类与继承
ES5 中的类与继承: 类的定义: function People(name, age) { // this指向当前实例化对象 console.log(this); // 实例属性 this.name ...
- 【python】类的继承和多态
比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印: class Animal(object): def run(self): print 'Animal is r ...
- Python 派生类子类继承类
1.创建list类的子类Namedlist,初始化新类,创建新对象实例johnny,检查对象类型,并使用list的一些功能来存储数据 >>> class Namedlist(list ...
随机推荐
- *[hackerrank]Volleyball Match
https://www.hackerrank.com/contests/w1/challenges/volleyball-match 此题不错,首先可以看出是DP,S(x, y)= S(x - 1, ...
- Linux多线程编程和Linux 2.6下的NPTL
Linux多线程编程和Linux 2.6下的NPTL 在Linux 上,从内核角度而言,基本没有什么线程和进程的区别--大家都是进程.一个进程的多个线程只是多个特殊的进程他们虽然有各自的进程描述结构, ...
- Java学习笔记之:Java流程控制
一.介绍 Java流程控制包括顺序控制.条件控制和循环控制. 顺序控制,就是从头到尾依次执行每条语句操作.条件控制,基于条件选择执行语句,比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操 ...
- android actionbar标题栏
在android的actionBar中,actionBar的视图是固定的,左边是程序的图标和title,右边是添加的menuItem,如果想要定制actionbar中的view就要自定义视图. 首先要 ...
- newClass a = Func(3)中隐藏的操作
缘起 #include <iostream> #include <bitset> using namespace std; class A { public: A() { co ...
- Linux设备管理之权限倾斜——mem、proc、devfs、sysfs、udev(下)
linux发展第一阶段 01devfs(linux2.6之前) 02udev(用户空间) 03sysfs(linux2.6之后,描述设备属性) linux发展第二阶段 01sysfs+udev(ude ...
- WCF-学习笔记概述之计算服务(1)
关于WCF的介绍,在此不再赘述,其他地方应有尽有.直接开始实例,第一个实例以一个简单的计算服务为例,本人是学习了蒋金楠的<WCF全面解析>. 1.构建解决方案 Interface:用于定义 ...
- hdu 4941 Magical Forest ( 双重map )
题目链接 题意: 有一个n*m的田地,里边有k棵树,每棵树的位置为(xi,yi),含有能量值ci.之后又q个询问,分三种; 1)1 a b,将a行和b行交换 2)2 a b,将a列和b列交换 3)3 ...
- sdut 2934 人活着系列之平方数 (完全背包变形)
题目链接 分析:完全背包的变形,每一层的d[]数组代表这一层的这个数新加入以后所构成的val的种类. #include <iostream> #include <cstdio> ...
- PL/SQL Developer自动补全SQL技巧
s = SELECT t.* FROM t w = WHERE b = BETWEEN AND l = LIKE '%%' o = ORDER BY insw = IN (SELECT a FROM ...