python新生类和经典类简单说明
#!/usr/bin/env python
#*-* coding:utf-8 *-*
class A():
def __init__(self):
print 'my name is GF' def test(self):
print 'this is ====A====='
class B(A):
def __init__(self):
print 'my name is BFather'
class C(A):
def __init__(self):
print 'my name is Cfather' def test(self):
print 'this is ======C======'
class D(B,C):
def __init__(self):
print 'my name is D'
t1 =D()
t1.test()
执行效果:
my name is D
this is ======A======
#继承关系,先找B,如果B没有则找A.(深度优先)
#!/usr/bin/env python
#*-* coding:utf-8 *-*
class A(object):
def __init__(self):
print 'my name is GF' def test(self):
print 'this is ====A====='
class B(A):
def __init__(self):
print 'my name is BFather'
class C(A):
def __init__(self):
print 'my name is Cfather' def test(self):
print 'this is ======C======'
class D(B,C):
def __init__(self):
print 'my name is D'
t1 =D()
t1.test() 执行结果
my name is D
this is ======C======
#继承关系,先找B,如果B没有则找C(广度优先) 当然,class D(B,C) 这里是先执行B,在执行C的。
class A(object):
def __init__(self):
print 'my name is GF' def test(self):
print 'this is ====A====='
class B(A):
def __init__(self):
print 'my name is BFather'
class C(A):
def __init__(self):
print 'my name is Cfather' def test(self):
print 'this is ======C======'
class D(B,C):
def __init__(self):
print 'my name is D'
super(D,self).__init__()
t1 =D()
t1.test() 这里执行父类的构造函数,可以使用super方法,这也是新生类的特点。
如果使用经典类的话,那么调用父类的构造函数或者是方法,只能使用父类.方法(self)的方法
小结:新生类是支持super方式调用父类的方法。
python新生类和经典类简单说明的更多相关文章
- python中新式类和经典类
python中的类分为新式类和经典类,具体有什么区别呢?简单的说, 1.新式类都从object继承,经典类不需要. Python 2.x中默认都是经典类,只有显式继承了object才是新式类 Pyth ...
- python中新式类和经典类的区别
1).python在类中的定义在py2-3版本上是使用的有新式类和经典类两种情况,在新式类和经典类的定义中最主要的区别是在定义类的时候是否出现引用object;如:经典类:Class 类名::而新式类 ...
- Python新式类与经典类的区别
1.新式类与经典类 在Python 2及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于“新式类”,都会获得所有“新式类”的特性:反之,即不由任意内置类型派生出的类 ...
- python之继承、抽象类、新式类和经典类
一.上节补充1.静态属性静态属性 : 类的属性,所有的对象共享这个变量 如果用对象名去修改类的静态属性:在对象的空间中又创建了一个属性,而不能修改类中属性的值 操作静态属性应该用类名来操作 例1:请你 ...
- python中的__new__与__init__,新式类和经典类(2.x)
在python2.x中,从object继承得来的类称为新式类(如class A(object))不从object继承得来的类称为经典类(如class A()) 新式类跟经典类的差别主要是以下几点: 1 ...
- Python 新式类与经典类
新式类,经典类 查询匹配 广度查询 横着对每个类进行查询 深度查询 无视平级类,直接寻找下级类 #python 3.0 #新式类 广度查询 #经典类 广度查询 #python 2.0 #新式类 广度查 ...
- Python新式类和经典类的区别
@Python新式类和经典类的区别 class ClassicClass(): pass class NewStyleClass(object): pass x1 = ClassicClass() x ...
- Python类总结-继承-子类和父类,新式类和经典类
子类和父类 class Father(object): #子类在使用super调用父类时,Father后面要加object --新式类 def __init__(self): self.Fname = ...
- Python之面向对象新式类和经典类
Python之面向对象新式类和经典类 新式类和经典类的继承原理: 在Python3中,就只有新式类一种了. 先看Python3中新式类: 类是有继承顺序的: Python的类是可以继承多个类的,也就是 ...
- <转>Python中的新式/经典类的查找方式
在学习到深度和广度的时候,懵了很久.后来看到这篇文章,恍然大悟.写的很好.特意转过来. 经典类: 只要有父类, 就会沿着一直找, 即使已经找过了~ 新式类: 在类继承的多个类拥有共同父类的情况下, 会 ...
随机推荐
- Android的ListView分页功能(上滑加载更多)
今天主要工作是将之前实现的各种ListView显示全部信息,优化成了每次加载几条数据,然后上滑的时候加载更多,底部显示一个进度条和一个文字提示,然后加载完毕后,将提示信息隐藏. 一边看教学视频一遍敲代 ...
- p132代码解析
1. long before = System.currentTimeMillis(); long after = System.currentTimeMillis(); //该两句代码规定了一个do ...
- Maven <Profiles>定义不同环境的参数变量
记录一下 https://blog.csdn.net/qq245282209/article/details/52192115
- MathType试用期到了如何继续用
1,卸载原来的MathType(不知道需不需要,其实删不删应该无所谓吧) 2,删除注册表中的一个值(不是默认,而是另外一个值) HKEY_CURRENT_USER\Software\Install O ...
- 面试:C++二叉树遍历(递归/非递归)
#include <vector> #include <stack> #include <queue> using namespace std; struct Tr ...
- Java NIO系列教程(十二) Java NIO与IO
当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异.它们的使用场景,以及它们如何影响您的代 ...
- Pro * c Oracle 12c
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<sqlca.h> vo ...
- Go控制语句
指针 Go虽然保留了指针,但是与其他编程语言不通的是,在Go当中不支持指针运算以及"->"运算符,而是直接采用"."选择符来操作指针目标对象的成员. 操作 ...
- 解决使用vue-cli生成项目后项目地址自动添加#号的问题
vue-router官网https://router.vuejs.org/zh/guide/ vue的路由在默认的hash模式下,url会带有一个#,不美观,而且在微信分享,授权登录等都会有一些坑.所 ...
- Redis发布订阅机制
1. 什么是Redis Redis是一个开源的内存数据库,它以键值对的形式存储数据.由于数据存储在内存中,因此Redis的速度很快,但是每次重启Redis服务时,其中的数据也会丢失,因此,Redis也 ...