# 经典类写法
# 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 面向对象 新式类和经典类的更多相关文章

  1. Python之面向对象新式类和经典类

    Python之面向对象新式类和经典类 新式类和经典类的继承原理: 在Python3中,就只有新式类一种了. 先看Python3中新式类: 类是有继承顺序的: Python的类是可以继承多个类的,也就是 ...

  2. python之继承、抽象类、新式类和经典类

    一.上节补充1.静态属性静态属性 : 类的属性,所有的对象共享这个变量 如果用对象名去修改类的静态属性:在对象的空间中又创建了一个属性,而不能修改类中属性的值 操作静态属性应该用类名来操作 例1:请你 ...

  3. python中新式类和经典类的区别

    1).python在类中的定义在py2-3版本上是使用的有新式类和经典类两种情况,在新式类和经典类的定义中最主要的区别是在定义类的时候是否出现引用object;如:经典类:Class 类名::而新式类 ...

  4. Python新式类与经典类的区别

    1.新式类与经典类 在Python 2及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于“新式类”,都会获得所有“新式类”的特性:反之,即不由任意内置类型派生出的类 ...

  5. python中的__new__与__init__,新式类和经典类(2.x)

    在python2.x中,从object继承得来的类称为新式类(如class A(object))不从object继承得来的类称为经典类(如class A()) 新式类跟经典类的差别主要是以下几点: 1 ...

  6. Python 新式类与经典类

    新式类,经典类 查询匹配 广度查询 横着对每个类进行查询 深度查询 无视平级类,直接寻找下级类 #python 3.0 #新式类 广度查询 #经典类 广度查询 #python 2.0 #新式类 广度查 ...

  7. 面向对象【day07】:新式类和经典类(八)

    本节内容 1.概述 2.类的多继承 3.经典类VS新式类 4.总结 一.概述 在python还支持多继承,但是一般我们很少用,有些语言干脆就不支持多继承,有多继承,就会带来两个概念,经典类和新式类,下 ...

  8. python中新式类和经典类

    python中的类分为新式类和经典类,具体有什么区别呢?简单的说, 1.新式类都从object继承,经典类不需要. Python 2.x中默认都是经典类,只有显式继承了object才是新式类 Pyth ...

  9. Python新式类和经典类的区别

    @Python新式类和经典类的区别 class ClassicClass(): pass class NewStyleClass(object): pass x1 = ClassicClass() x ...

  10. Python类总结-继承-子类和父类,新式类和经典类

    子类和父类 class Father(object): #子类在使用super调用父类时,Father后面要加object --新式类 def __init__(self): self.Fname = ...

随机推荐

  1. lua中的字符串操作(模式匹配)

    (一). 模式匹配函数在string库中功能最强大的函数是:string.find(字符串查找)string.gsub(全局字符串替换)string.gfind(全局字符串查找)string.gmat ...

  2. 【Java知识点专项练习】之 数据类型两大类

    Java的数据类型分为两大类:基本类型和引用类型: 基本类型只能保存一些常量数据,引用类型除了可以保存数据,还能提供操作这些数据的功能: 为了操作基本类型的数据,java也对它们进行了封装, 得到八个 ...

  3. 【Spring源码深度解析学习系列】Bean的加载(六)

    Bean的加载所涉及到的大致步骤: 1)转换对应beanName 为什么需要转换beanName呢?因为传入的参数可能是别名,也可能是FactoryBean,所以需要一系列的解析,这些解析内容包括如下 ...

  4. 【Spring Boot&&Spring Cloud系列】Spring Boot配置文件

    很多的参数可以配置在application.properties或application.yml文件中 一.BANNER banner.charset=UTF-8 # Banner file enco ...

  5. Email standards

    https://www.fastmail.com/help/technical/standards.html Email structure These RFCs define the way ema ...

  6. LeetCode 30 Substring with Concatenation of All Words(确定包含所有子串的起始下标)

    题目链接: https://leetcode.com/problems/substring-with-concatenation-of-all-words/?tab=Description   在字符 ...

  7. sencha touch Carousel 自动切换

    代码是在网上找的,忘记原出处了 /** * 跑马灯自动切换 */ Ext.define('ux.RotatingCarousel', { extend: 'Ext.carousel.Carousel' ...

  8. SSH用户枚举漏洞(CVE-2018-15473)原理学习

    一.漏洞简介 1.漏洞编号和类型 CVE-2018-15473 SSH 用户名(USERNAME)暴力枚举漏洞 2.漏洞影响范围 OpenSSH 7.7及其以前版本 3.漏洞利用方式 由于SSH本身的 ...

  9. 去除select边框和三角-----appearance:none

    今天发现一个比较有意思的属性,appearance:none 可能有朋友不认识,但是有一个标签你肯定认识:select. 这个标签的样式是这样的: 一般情况下,我们所使用的border:0; 去除边框 ...

  10. WinDbg远程调试unable to initialize target machine information win32 error 0n87

    Debugging Target:Windows XP SP3 32-bit Debugging Host:Windows Server 2012 64-bit 当附加到目标服务器某个进程后,WinD ...