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 = ...
随机推荐
- HTML5和CSS3扁平化风格博客(进阶篇)
趁热打铁,将剩下的部分完结~ 接上篇,增加了一些js特效:侧边栏,返回顶部. 至于效果,也不知道gif的图片怎么显示不上去了 无奈只能直接上代码了,完整版请点击: https://files.cnbl ...
- 关于控制台程序下使用mfc库中的函数时断言
例如: TCHAR path[8192]; int len = getmodulefilename(afxgetinstancehandle(),path,8192);//会出现断言 如果没有选择支持 ...
- Swift - 3.0 去掉 C 风格循环
Swift 3.0 版本去掉了沿用已久的 C 风格循环语法, 又是向现代开发语言的一次迈进, 咱们就来看看没了 C 风格循环我们还有什么选择 C 风格循环 关于 C 风格循环, 不我们过多介绍了, 就 ...
- 很好用的php在线调试工具
什么叫在线调试?就是在线上生产环境进行调试,假设有一天某个用户报某个页面某个数据怎么不对啊,看来线上出BUG了,于是你要迅速找出原因,首先看日志,可是悲剧的没有足够的日志让你确定线上BUG的原因,也许 ...
- java框架---->quartz的使用(一)
Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制.今天我们就来学习一下它的使用,这里会分篇章对它进行介绍.只是希望能有个人,在我说没事的时候,知道我不 ...
- WebApp与Native App有何区别
转:http://blog.sina.com.cn/s/blog_5f2df1e401018hjj.html 今天看的一篇关于html5的Web App与Native App的技术分析,真的很棒分享一 ...
- 网狐荣耀平台找不到存储过程 'GSP_GS_LoadGameMatchItem'错误解决
把RYGameMatchDB的存储过程复制到RYGameScoreDB即可,GSP_GS_InsertGameMatchItem和GSP_GS_DeleteGameMatchItem也一样 由于存储过 ...
- Hive学习之Union和子查询
Union的语法格式如下: select_statement UNION ALL select_statement UNION ALL select_statement ... Union用于将多个S ...
- 升级后重启造成fsck.ext3: Unable to resolve UUID
这篇文章帮了我的大忙了:转载自:http://wilber82.blog.51cto.com/1124820/724472 今天在做服务器补丁部署,有一台ESX4.1的服务器在升级后重启过程中挂了,通 ...
- java的HashSet 原理
概括:HashSet 以HashMap为基础,判断HashSet 中元素是否存在和重复,先把该元素经过hashcode()等方法计算之后得到的值作为key值, 然后比较该key值是否存在和重复(把该元 ...