python 面向对象 新式类和经典类
# 经典类写法
# schoolMember.__init__(self, name, age, sex) # 新式类写法
super(Teather, self).__init__(name, age, sex)
class schoolMember(object):
'''学校成员分类'''
member = 0 def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex self.enroll() # 实例化时候 自动注册 def enroll(self):
'''注册'''
print("just enrolled a new school member [%s]" % self.name)
schoolMember.member += 1 def tell(self):
print("%s info".center(40, "-") % self.name) for i in self.__dict__: # 循环字典 t1.__dict__
print("\t", i, self.__dict__[i]) print("End".center(40, "-")+"\n") def __del__(self): # 析构函数
print("开除了 [%s]" % self.name)
schoolMember.member -= 1 class Teather(schoolMember):
'''教师类''' def __init__(self, name, age, sex, salary, course): # 经典类写法
# schoolMember.__init__(self, name, age, sex) # 新式类写法
super(Teather, self).__init__(name, age, sex) self.salary = salary
self.course = course def teaching(self):
print("tearcher [%s] is teaching [%s]" % (self.name, self.course)) class Student(schoolMember):
'''学生类''' def __init__(self, name, age, sex, course, tuition): super(Student, self).__init__(name, age, sex) self.course = course
self.tuition = tuition
self.amount = 0 def pay_tuition(self, amount):
print("student [%s] has just paied [%s]" % (self.name, amount))
self.amount += amount t1 = Teather("mike", 28, "F*M", 10000, "python")
s1 = Student("jianlin", 21, "N/A","pythons15", 100000)
s2 = Student("mayun", 12, "M", "pythons15", 210000) print(schoolMember.member) t1.tell()
s1.tell()
s2.tell() del s1
print(schoolMember.member)
del s2
print(schoolMember.member)
del t1
print(schoolMember.member) '''
just enrolled a new school member [mike]
just enrolled a new school member [jianlin]
just enrolled a new school member [mayun]
3
----------------mike info-----------------
name mike
age 28
sex F*M
salary 10000
course python
------------------End------------------- ----------------jianlin info-----------------
name jianlin
age 21
sex N/A
course pythons15
tuition 100000
amount 0
------------------End------------------- ----------------mayun info-----------------
name mayun
age 12
sex M
course pythons15
tuition 210000
amount 0
------------------End------------------- 开除了 [jianlin]
2
开除了 [mayun]
1
开除了 [mike]
0
'''
class Person(object): # 新式类
super class Person: # 经典类
Person.__init__() 现在主要写新式类

python 面向对象 新式类和经典类的更多相关文章
- Python之面向对象新式类和经典类
Python之面向对象新式类和经典类 新式类和经典类的继承原理: 在Python3中,就只有新式类一种了. 先看Python3中新式类: 类是有继承顺序的: Python的类是可以继承多个类的,也就是 ...
- python之继承、抽象类、新式类和经典类
一.上节补充1.静态属性静态属性 : 类的属性,所有的对象共享这个变量 如果用对象名去修改类的静态属性:在对象的空间中又创建了一个属性,而不能修改类中属性的值 操作静态属性应该用类名来操作 例1:请你 ...
- python中新式类和经典类的区别
1).python在类中的定义在py2-3版本上是使用的有新式类和经典类两种情况,在新式类和经典类的定义中最主要的区别是在定义类的时候是否出现引用object;如:经典类:Class 类名::而新式类 ...
- Python新式类与经典类的区别
1.新式类与经典类 在Python 2及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于“新式类”,都会获得所有“新式类”的特性:反之,即不由任意内置类型派生出的类 ...
- python中的__new__与__init__,新式类和经典类(2.x)
在python2.x中,从object继承得来的类称为新式类(如class A(object))不从object继承得来的类称为经典类(如class A()) 新式类跟经典类的差别主要是以下几点: 1 ...
- Python 新式类与经典类
新式类,经典类 查询匹配 广度查询 横着对每个类进行查询 深度查询 无视平级类,直接寻找下级类 #python 3.0 #新式类 广度查询 #经典类 广度查询 #python 2.0 #新式类 广度查 ...
- 面向对象【day07】:新式类和经典类(八)
本节内容 1.概述 2.类的多继承 3.经典类VS新式类 4.总结 一.概述 在python还支持多继承,但是一般我们很少用,有些语言干脆就不支持多继承,有多继承,就会带来两个概念,经典类和新式类,下 ...
- python中新式类和经典类
python中的类分为新式类和经典类,具体有什么区别呢?简单的说, 1.新式类都从object继承,经典类不需要. Python 2.x中默认都是经典类,只有显式继承了object才是新式类 Pyth ...
- Python新式类和经典类的区别
@Python新式类和经典类的区别 class ClassicClass(): pass class NewStyleClass(object): pass x1 = ClassicClass() x ...
- Python类总结-继承-子类和父类,新式类和经典类
子类和父类 class Father(object): #子类在使用super调用父类时,Father后面要加object --新式类 def __init__(self): self.Fname = ...
随机推荐
- linux系统开机自启程序-需要-root用户 -启动 -
#!/bin/bashsh /home/hwjc/RSA/release2017-02-23/release2017-02-23/install.shsh /etc/init.d/mqtt.shifc ...
- vs 2010中如何检查内存泄露
首先,在文件头添加下面的内容: #ifdef _DEBUG#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)#else# ...
- 【转】C++可变参数列表处理宏va_list、va_start、va_end的使用
VA_LIST是在C语言中解决变参问题的一组宏他有这么几个成员: 1)va_list型变量: #ifdef _M_ALPHA typedef struct{ char* a0; /*po ...
- QSS样式表之PS黑色风格+白色风格+淡蓝色风格(开源)
用QUI皮肤生成器制作皮肤,基本上不超过一分钟就可以生成一套自己想要的皮肤,只要设置八种颜色即可.本人非常喜欢这套黑色风格样式皮肤,特意分享出来,下载地址:https://download.csdn. ...
- 【多线程系列】AQS CAS简单介绍
一.什么是CAS CAS(Compare And Swap),即比较并交换.是解决多线程并行情况下使用锁造成性能损耗的一种机制,CAS操作包含三个操作数——内存位置(V).预期原值(A)和新值(B). ...
- jQuery事件处理(四)
看了几天,决定整理一下jQuery事件处理的整体设计思路 1.通过add方法给选中的元素注册事件处理程序(通过缓存系统将事件储存到cache,而不是绑定到元素上) a.在存储之前,会为事件处理程序增加 ...
- Git 创建两个“本地分支”协同工作
一 代码拉下来后,首先创建两个本地分之 $repo start master . //仅仅用于同步服务器的修改(此处master名字可以随意定,但是建议定成这样,好记忆) $repo start wo ...
- sencha touch 视图(view) activate与deactivate事件探讨
在sencha touch2.2中采用card布局 之前的需求是考虑show,hide事件发现不可取 http://www.cnblogs.com/mlzs/archive/2013/06/13/31 ...
- wireshark和RawCap跟踪并解决中文乱码问题
一.问题概述 说下程序的架构. 有个后台管理系统A,在页面修改数据后,会用httpClient发http请求给系统B: 系统B做了异步机制,收到A发的请求后,将数据封装为Mq消息发给RabbitMq, ...
- [工具] multidesk
MultiDesk 是一个选项卡(TAB标签)方式的远程桌面连接 (Terminal Services Client). http://www.hoowi.com/multidesk/index_ch ...
