类的概念: 把一类事物的相同的特征和动作整合到一起就是类,类是一个抽象的概念 属性: 数据属性(变量) 函数属性(函数)(在面向对象中叫作类) # python为类内置的特殊属性
类的概念:
把一类事物的相同的特征和动作整合到一起就是类,类是一个抽象的概念
属性:
数据属性(变量)
函数属性(函数)(在面向对象中叫作类)
#python为类内置的特殊属性 类名.__name__# 类的名字(字符串) 类名.__doc__# 类的文档字符串 类名.__base__# 类的第一个父类(在讲继承时会讲) 类名.__bases__# 类所有父类构成的元组(在讲继承时会讲) 类名.__dict__# 类的字典属性 类名.__module__# 类定义所在的模块 类名.__class__# 实例对应的类(仅新式类中)
class Chinese: eyes=‘big‘ #定义数据属性 face=‘beautiful‘ CH=‘chinese‘ def movement(): #定义函数属性 print(‘love to traval‘) def food(self): print(‘%s love to eatting‘ %Chinese.CH) print(Chinese.eyes) #big # print(Chinese.__dict__) #查看属性字典 print(Chinese.__dict__[‘eyes‘]) #big Chinese.movement() #love to traval Chinese.__dict__[‘movement‘]() #love to traval Chinese.__dict__[‘food‘](1) #chinese love to eatting
对象的概念:
就是基于类而创建的一个具体的事物(具体存在的),也就是特征和动作整合到一起
实例化:
由类生成对象的过程叫实例化,类实例化的结果就是对象
实例=对象
使用函数创建一个学校类:
特征:名字、地址、类型
动作:考试、招生、开除学生
#声明函数 def functionName(args): ‘函数文档字符串‘ 函数体
#创建一个school的类 def school(name,addr,type): def init(name,addr,type): sch={ ‘name‘:name, ‘addr‘:addr, ‘type‘:type, ‘kaixue‘:kaixue, ‘kaoshi‘:kaoshi } return sch def kaixue(school): print(‘%s 学校已开学‘ % school[‘name‘]) def kaoshi(school): print(‘这是一所%s,%s学校的学生在考试‘%(school[‘type‘],school[‘name‘])) return init(name,addr,type) #通过类生成具体的对象 s1=school(‘深圳第一中学‘,‘深圳市福田区‘,‘公立学校‘) s2=school(‘宝安第一中学‘,‘深圳市宝安区‘,‘私立学校‘) print(s1) #{‘addr‘: ‘深圳市福田区‘, ‘kaoshi‘: <function school.<locals>.kaoshi at 0x0000024A6E2D4158>, # ‘type‘: ‘公立学校‘, ‘kaixue‘: <function school.<locals>.kaixue at 0x0000024A6E2D40D0>, ‘name‘: ‘深圳第一中学‘} print(s2) #{‘addr‘: ‘深圳市宝安区‘, ‘kaoshi‘: <function school.<locals>.kaoshi at 0x0000024A6E2D4268>, # ‘type‘: ‘私立学校‘, ‘kaixue‘: <function school.<locals>.kaixue at 0x0000024A6E2D41E0>, ‘name‘: ‘宝安第一中学‘} s1[‘kaoshi‘](s1) #这是一所公立学校,深圳第一中学学校的学生在考试 s2[‘kaixue‘](s2) #宝安第一中学 学校已开学
使用面向对象编程独有的语法class去实现面向对象设计
class 类名: ‘类的文档字符串‘ 类体
#使用面向对象编程独有的语法class去实现面向对象设计创建一个school的类 class school: def __init__(self,name,addr,type): self.name=name self.addr=addr self.type=type def kaixue(self): print(‘%s 学校已开学‘ % self.name) def kaoshi(self): print(‘这是一所%s,%s学校的学生在考试‘%(self.type,self.name)) #通过类生成具体的对象 s1=school(‘深圳第一中学‘,‘深圳市福田区‘,‘公立学校‘) s2=school(‘宝安第一中学‘,‘深圳市宝安区‘,‘私立学校‘) print(s1.__dict__) #{‘type‘: ‘公立学校‘, ‘addr‘: ‘深圳市福田区‘, ‘name‘: ‘深圳第一中学‘} print(s2.__dict__) #{‘type‘: ‘私立学校‘, ‘addr‘: ‘深圳市宝安区‘, ‘name‘: ‘宝安第一中学‘} s1.kaixue() #深圳第一中学 学校已开学 s2.kaoshi() #这是一所私立学校,宝安第一中学学校的学生在考试
学习材料来源:
https://www.cnblogs.com/linhaifeng/articles/6182264.html