码迷,mamicode.com
首页 > 编程语言 > 详细

python基础----面向对象的程序设计

时间:2017-04-17 19:20:56      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:onclick   and   软件开发   --   size   设计   print   sel   扩展   

面向对象的软件开发有如下几个阶段:

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=addr
10         self.teacher_list=[]
11         self.course_list=[]
12 
13     def zhaosheng(self):  #共有技能
14         pass
15 
16 
17 #对象:老师---->归类
18     #共同的技能:教课
19     #独有的特征:名字,性别,level,课程
20 
21 class Teacher:
22 
23     def __init__(self,name,sex,level):
24         self.name=name
25         self.sex=sex
26         self.level=level
27         self.course_list=[]
28 
29     def teach(self):
30         pass
31 
32 
33 #对象:学生---->归类
34     #共同的特征:
35     #共同的技能:search_score,handin
36     #独有的特征:学号,名字,性别,课程
37 class Student:
38     def __init__(self,ID,name,sex):    #独有特征
39         self.id=ID
40         self.name=name
41         self.sex=sex
42         self.course_list=[]
43     def search_score(self):    #共有技能
44         pass
45 
46     def handin(self):
47         pass
48 
49 class Course:
50     def __init__(self,name,price,period):
51         self.name=name
52         self.price=price
53         self.period=period
54 
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:%s
71     course name is :%s
72     course price is :%s
73     ‘‘‘ %(s1.name,s1.course_list[0].name,s1.course_list[0].price))
例子1

 

对于小白的忠告:

1.面向对象的程序设计看起来高大上,所以我在编程时就应该保证通篇class,这样写出的程序一定是好的程序(面向对象只适合那些可扩展性要求比较高的场景)

2.很多人喜欢说面向对象三大特性(这是从哪传出来的,封装,多态,继承?漏洞太多太多,好吧暂且称为三大特性),那么我在基于面向对象编程时,我一定要让我定义的类中完整的包含这三种特性,这样写肯定是好的程序

好家伙,我说降龙十八掌有十八掌,那么你每次跟人干仗都要从第一掌打到第18掌这才显得你会了是么,我来一万个人你需要打10000*18掌对么,傻叉

3.类有类属性,实例有实例属性,所以我们在定义class时一定要定义出那么几个类属性,想不到怎么办,那就使劲的想,定义的越多越牛逼

这就犯了一个严重的错误,程序越早面向对象,死的越早,为啥面向对象,因为我们要将数据与功能结合到一起,程序整体的结构都没有出来,或者说需要考虑的问题你都没有搞清楚个八九不离十,你就开始面向对象了,这就导致了,你在那里干想,自以为想通了,定义了一堆属性,结果后来又都用不到,或者想不通到底应该定义啥,那就一直想吧,想着想着就疯了。

你见过哪家公司要开发一个软件,上来就开始写,肯定是频繁的开会讨论计划,请看第八节

4.既然这么麻烦,那么我彻底解脱了,我们不要用面向对象编程了,你啊,你有大才,你能成事啊,傻叉。

  

python基础----面向对象的程序设计

标签:onclick   and   软件开发   --   size   设计   print   sel   扩展   

原文地址:http://www.cnblogs.com/wangyongsong/p/6724355.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!