一.三大编程范式 1.面向过程: 2.函数式编程: 3.面向对象编程: 二.编程进化论: 1.编程最开始就是无组织的,从最简单控制流中按步写指令 2.从上述的指令中提取重复的代码块或者逻辑,组织到一起,便实现代码重用,且代码由无结构走向了结构化,创建程序的过程变得更具有逻辑性 3.定义函数都是独立于函数外定义变量,然后作为参数传递给函数,这就意味着,数据与动作是分离的 4.如果我们把数据和动作内嵌到一个结构,那么我们就有啦一个对象系统(对象就是数据与函数整合到一起的产物) 三.面向对象设计与面向对象编程 1.什么叫类,类是一种数据结构,好比一个模型,改模型用来描述一类事物(事物即数据和动作的结合体),用来产生实例的物体 声明函数: ===============================面向对象编程========================== import os import sys # def dog(): # def chishi(): # return print('chishi') # def jiao(): # return print('jiao') # dog1 = { # 'name': 'oulen', # 'gender': '母', # 'type': '藏獒', # '叫': jiao, # 'chishi': chishi # } # return dog1 # d1=dog() # print(d1) def dog(name,gender,type): # 狗的动作 def jiao(dog): print('一条狗[%s],汪汪汪' % dog['name']) def chi_shi(dog): print('一条[%s] 正在吃屎' % dog['type']) def init(name,gender,type): dog1 = { 'name':name, 'gender': gender, 'type': type, 'jiao':jiao, 'chi_shi':chi_shi, } return dog1 return init(name,gender,type) d1=dog('元昊','母','中华田园犬') d2=dog('alex','母','藏敖') print(d1) print(d2) d1['jiao'](d1) d2['chi_shi'](d2) #动作和特征的集合就是一个对象 #类本身没有任何的意义,只是描述了 #def 也是面向对象 #类:吧一类事物的相同的特征和动作整合到一起就是类,类就是一个抽象的概念 #对象:就是基于类而创建的一个具体的事物(具体的存在),也就是特征和动作整合到一起 #学校类: #特征:name , addr type #动作:考试,招生,开除学生 ==============================================面向对象设计================== def school(name,addr,type): def init(name,addr,type): sch={ 'name':name, 'addr':addr, 'type':type, 'kao_shi':kao_shi, 'zhao_sheng':zhao_sheng } return sch def kao_shi(school): print('%s 学校正在考试'%school['name']) def zhao_sheng(school): print('%s %s 正在招生'%(school['type'],school['name'])) return init(name,addr,type) s1=school('alex','上海','公里学校') # print(s1['name']) s1['zhao_sheng'](s1) ==============================类相关======================================= #类型首字母大写 # class Chinses: # '这是一个中国人的类' # pass # print(Chinses) # # def test(): # print(test) # a=test() # p1=Chinses() # print(p1) # # # #python2 中经典类, # class Chinese: # pass # # #新式类 # class Chinsesa(object): # pass #类中做什么 #1.属性,用来描述一类事物,类的对象指的是这里类事物中的一个个体 #1.数据属性:就是变量 #2.函数属性:就是函数,在面向对象里面称之为方法 # class Chinese: # '这是一个中国人' # dang='共产' # # def init(self,name,age,gender): # # dic={ # # 'name':name, # # 'age':age, # # 'gender':gender # # } # # # def __init__(self,name,age,gender): # print('我是初始化函数') # self.mingzi=name # self.nianji=age # self.xingbie=gender # # print('我结束啦') # def sui_di_tu_tan(self): # print('朝着墙上就是一口痰%s'%self.mingzi) # def cha_dui(self): # print('插到前面') # def chi_shi(self,food): # print(self) # print('%s 正在吃%s'%(self.mingzi,food)) # # print(Chinese.dang) # # print(Chinese.sui_di_tu_tan()) # # print(dir(Chinese)) # # print(Chinese.__dict__)#查看类的属性字典 # # print(Chinese.__dict__['dang']) # # Chinese.__dict__['sui_di_tu_tan']() # # Chinese.__dict__['cha_dui']('self') # a=Chinese('oulen',18,'female') # print(a.__dict__) # Chinese.__init__(a,name='oulen1',age=19,gender='female') # print(a.__dict__['xingbie']) # print(a.mingzi) # a.sui_di_tu_tan() # ass=Chinese('oulen',18,'female') # print(ass.chi_shi('豆浆')) #实例化就是类名前面 #运行就是实例化一个类 #实例初始化的时候会运行初始化函数 #风湿理论 # class Asc(): # def __init__(self,a,b): # self.a=a # self.b=b # def addsub(self): # return self.a+self.b # class run(): # def start(self,x,y): # a=Asc(x,y) # print(a.addsub()) # # # m=run() # m.start(6,7) class ChinsesPeople(): country='china' def __init__(self,name): self.name=name def pay(self): print('在打篮球') print(ChinsesPeople.country) #修改类属性 ChinsesPeople.country="Japan" print(ChinsesPeople.country) p1=ChinsesPeople('oulen') print(p1.country) #增加类属性 ChinsesPeople.city='jiangxi' #删除 del ChinsesPeople.country #print(p1.country) #函数属性 def eat_food(self,food): return print('吃红薯') ChinsesPeople.eat=eat_food print(ChinsesPeople.__dict__) print(p1.eat('红薯')) #类属性的修改 def test(self): return print('test') ChinsesPeople.pay=test p1.pay() ===================================================实例的增删改查=============== # class Chinse: # country='china' # def __init__(self,name): # self.name=name # def play_ball(self,ball): # print('%s 正在打 %s'%(self.name,ball)) # p1=Chinse('oulen') # print(p1.__dict__) # #查看实例属性字典 # print(p1.name) # print(p1.country) # p1.play_ball('篮球') # # #增加实例属性 # p1.age=19 # print(p1.__dict__) # print(p1.age) # # #增加实例函数属性 # #不推荐 # # def test(self): # # print('我是来自实例的函数属性') # # p1.test=test # # print(p1.__dict__) # # print(p1.test(p1)) # #违反实例的原则 # # #删除 # del p1.age # print(p1.__dict__) # # #对象和实例属性 class Mydata(): pass x=10 y=123 Mydata.x=1 Mydata.y=12 print(x,y) print(Mydata.x,Mydata.y) =======================================就不行玩不懵你========================= # class Chinses: # counrty='china' # def __init__(self,name): # self.name=name # def Plsy_ball(self,ball): # print('%s 在打球%s'%(self.name,ball)) # p1=Chinses('alex') # print(p1.counrty) # p1.counrty='riben' # print('类的--》》',Chinses.counrty) # print('实例的-》》》',p1.counrty) # # country='中国' # class Chinses: # #counrty='china' # def __init__(self,name): # print('---->?') # #name=input('输入用户名') # self.name=name # def Plsy_ball(self,ball): # print('%s 在打球%s'%(self.name,ball)) # def shi_li_hua(): # name=input('输入的') # p1=Chinses(name) # #print(p1.counrty) # print(p1.name) # country='中国' # class Chinses: # counrty='china' # def __init__(self,name): # print('---->?') # #name=input('输入用户名') # self.name=name # print('--->',country) # def Plsy_ball(self,ball): # print('%s 在打球%s'%(self.name,ball)) # p1=Chinses('alex') # print(Chinses.__dict__) # print(Chinses.counrty) #遵循.的调用方式,就是在里面去调用 country='中国' class Chinses: counrty='china' l = ['a', 'b'] def __init__(self,name): print('---->?') #name=input('输入用户名') self.name=name print('--->',country) def Plsy_ball(self,ball): print('%s 在打球%s'%(self.name,ball)) p1=Chinses('alex') # print(Chinses.__dict__) # print(Chinses.counrty) # print(p1.l) # p1.l=[1,3,4] # print(Chinses.l) # print(Chinses.__dict__) p1.l.append('c')#修改类的属性 print(p1.__dict__) print(Chinses.l) #1.找出共有的函数属性 #定义学校类,老师类,课程类,班级类,学生类
day24基本的面向对象和编程
猜你喜欢
转载自blog.csdn.net/qq_37311616/article/details/80603419
今日推荐
周排行