首页 > 代码库 > python基础----面向对象的程序设计
python基础----面向对象的程序设计
面向对象的软件开发有如下几个阶段:
1.面向对象分析(object oriented analysis ,OOA)
2 面向对象设计(object oriented design,OOD)
3 面向对象编程(object oriented programming,OOP)
4 面向对象测试(object oriented test,OOT)
5 面向对象维护(object oriendted soft maintenance,OOSM)
1 #对象:学校----->归类 2 #共有的特征:商标为etiantian 3 #共有的技能:招生 4 #独有的特征:地址不一样,老师们,课程 5 6 class School: 7 tag=‘etiantian‘ #共有特征 8 def __init__(self,addr): #独有特征 9 self.addr=addr10 self.teacher_list=[]11 self.course_list=[]12 13 def zhaosheng(self): #共有技能14 pass15 16 17 #对象:老师---->归类18 #共同的技能:教课19 #独有的特征:名字,性别,level,课程20 21 class Teacher:22 23 def __init__(self,name,sex,level):24 self.name=name25 self.sex=sex26 self.level=level27 self.course_list=[]28 29 def teach(self):30 pass31 32 33 #对象:学生---->归类34 #共同的特征:35 #共同的技能:search_score,handin36 #独有的特征:学号,名字,性别,课程37 class Student:38 def __init__(self,ID,name,sex): #独有特征39 self.id=ID40 self.name=name41 self.sex=sex42 self.course_list=[]43 def search_score(self): #共有技能44 pass45 46 def handin(self):47 pass48 49 class Course:50 def __init__(self,name,price,period):51 self.name=name52 self.price=price53 self.period=period54 55 s1=Student(‘123123123123‘,‘cobila‘,‘female‘)56 # print(s1.id,s1.name,s1.sex)57 # print(s1.course_list)58 # s1.course_list.append(‘python‘)59 # s1.course_list.append(‘linux‘)60 # print(s1.course_list)61 62 python_obj=Course(‘python‘,15800,‘7m‘)63 linux_obj=Course(‘linux‘,19800,‘2m‘)64 65 66 s1.course_list.append(python_obj)67 s1.course_list.append(linux_obj)68 # print(s1.course_list)69 70 print(‘‘‘student name is:%s71 course name is :%s72 course price is :%s73 ‘‘‘ %(s1.name,s1.course_list[0].name,s1.course_list[0].price))
对于小白的忠告:
1.面向对象的程序设计看起来高大上,所以我在编程时就应该保证通篇class,这样写出的程序一定是好的程序(面向对象只适合那些可扩展性要求比较高的场景)
2.很多人喜欢说面向对象三大特性(这是从哪传出来的,封装,多态,继承?漏洞太多太多,好吧暂且称为三大特性),那么我在基于面向对象编程时,我一定要让我定义的类中完整的包含这三种特性,这样写肯定是好的程序
好家伙,我说降龙十八掌有十八掌,那么你每次跟人干仗都要从第一掌打到第18掌这才显得你会了是么,我来一万个人你需要打10000*18掌对么,傻叉
3.类有类属性,实例有实例属性,所以我们在定义class时一定要定义出那么几个类属性,想不到怎么办,那就使劲的想,定义的越多越牛逼
这就犯了一个严重的错误,程序越早面向对象,死的越早,为啥面向对象,因为我们要将数据与功能结合到一起,程序整体的结构都没有出来,或者说需要考虑的问题你都没有搞清楚个八九不离十,你就开始面向对象了,这就导致了,你在那里干想,自以为想通了,定义了一堆属性,结果后来又都用不到,或者想不通到底应该定义啥,那就一直想吧,想着想着就疯了。
你见过哪家公司要开发一个软件,上来就开始写,肯定是频繁的开会讨论计划,请看第八节
4.既然这么麻烦,那么我彻底解脱了,我们不要用面向对象编程了,你啊,你有大才,你能成事啊,傻叉。
python基础----面向对象的程序设计