本文主要介绍python中类的概念性内容,如类的定义、说明及简单使用
1. 类的简单介绍
1 # -*- coding:utf-8 -*- 2 # Author:Wong Du 3 4 ''' 5 ----- 编程范式 ----- 6 1、面向过程 7 基本设计思路就是程序一开始是要着手解决一个大的问题, 8 然后把一个大问题分解成很多个小问题或子过程,这些子过程 9 再执行的过程再继续分解直到小问题足够简单到可以在一个小步骤范围内解决。 10 2、面向对象 11 OOP编程是利用“类”和“对象”来创建各种模型来实现对真实世界的描述, 12 使用面向对象编程的原因一方面是因为它可以使程序的维护和扩展变得更简单 13 3、函数式编程 14 15 Class类 16 一个类即对具有相同属性的对象的抽象描述,如生物类(有生命体征的东西) 17 1、经典类和新式类(深度优先和广度优先) 18 2、构造函数(实例化时进行初始化),def __init__(self,...): 19 3、类变量和实例变量(存放位置、节省空间等) 20 4、析构函数(实例结束或程序结束是执行,用于做一些收尾工作)def __del__(self): 21 5、静态属性和动态属性 22 Object对象 23 一个具体的对象,类实例化后就是一个对象 24 Encapsulation封装 25 在类中数据变更、内部方法调用等对外部用户都是透明的, 26 这使类编程一个容器或胶囊,里面包含着类的数据和方法,用户不可感知 27 封装方法: 28 在类中变量名或方法名前加两个下划线即可 29 如:__n、def __tell(): 30 Inheritance继承 31 一个类可以派生出多个子类,继承父类的部分内容 32 1、继承格式,class zi(fu): 33 2、继承中构造函数的执行规则及顺序(只执行一个,先内后外) 34 3、获取父类构造函数的初始化实例变量并在子类中新增变量的两种方法 35 ① fu.__init__(self,a,b) 36 ② super(zi,self).__init__(a,b) 37 Polymorphism多态 38 一个接口,多种调用 39 ''' 40 41 class People: 42 ''' 43 类的基本介绍 44 类的定义,类名格式一般首字母大写,此为经典类, 45 py3,多继承为广度优先 46 ''' 47 __Author__ = "CaiYun" # 类变量 48 __Name = "Person" # 类私有变量 49 def __init__(self,name,age,addr,__priaddr='隐私'): # 构造函数,用于初始化实例变量 50 self.name = name # 实例变量 51 self.age = age 52 self.addr = addr 53 self.priaddr = __priaddr # 实例私有变量 54 55 56 # def __str__(self): # 通过打印类实例化后的实例名来调用,如p=People();print(p) 57 # return ''' 58 # -----People info----- 59 # Name: %s 60 # Age: %s 61 # Addr: %s''' %(self.name,self.age,self.addr) 62 63 # def __del__(self): # 析构函数,用于做一下收尾工作 64 # print(""" 65 # -----实例化了一个对象----- 66 # Object: %s 67 # Name: %s 68 # Age: %s 69 # Addr: %s""" %(self,self.name,self.age,self.addr)) 70 # print("程序结束时执行...") 71 72 def __privileges(self): # 在方法名前加"两个下划线",则将方法私有化 73 print("这是一个私有方法,做一些私密的事情,外界不可感知。") 74 pass 75 def public(self): 76 print("这是一个公有方法。外界可直接调用") 77 pass 78 79 class Man(People): # 新式类 80 def __init__(self,name,age,addr,sex): 81 # People.__init__(self,name,age,addr) # 使用父类定义相关变量,不建议使用这种方法 82 super(Man,self).__init__(name,age,addr) # 使用父类定义相关变量,建议使用这种方法 83 self.sex = sex 84 pass 85 def shopping(self): 86 print("%s 要去购物了..." %self.name) 87 88 89 p = People("Wong",23,"深圳") 90 # print(p.__Author__) 91 # print(p) 92 # p.__privileges() 93 p.public() 94 # print(p.__priaddr) 95 96 m = Man("Wong",23,"深圳",'boy') 97 print(m.name,m.age,m.sex) 98 m.shopping()
2. 类的继承
# -*- coding:utf-8 -*- # Author:Wong Du class SchoolMember(object): ''' 学校成员基类,用于被继承创建各类学校成员 ''' MemberCount = 0 SchMem_list = [] def __init__(self, name, age, id=None): ''' 构造函数,初始化基础环境变量 :param name: :param age: :param id: ''' self.name = name self.age = age self.id = id def tell(self): '''介绍方法''' pass def enroll(self): ''' 注册方法,用于统计注册人员信息 :return: ''' SchoolMember.MemberCount += 1 print("