标签:
提笔忘字,感慨良多!python自习前前后后有一年多了吧,貌似花了不少时间,其实没学到啥东西,都是在面向对象编程之前基础知识这块一直打转转,每次到了面向对象这块就感觉很蒙,看两天直接放弃,从头又来了一遍。有一天学了一个类推导觉得很牛逼去跟老程序员的同学炫耀,结果人家说了一句,学了快一年了还在这呢啊,面向对象懂不懂?socket编程会不会,多线程懂不懂?我说。。。,人家说别老在这晃悠了没啥意思,先搞清面向对象在来嘚瑟吧!我就是个犟脾气,还就被人激不得!
面向过程:根据业务逻辑从上到下写垒代码,自我理解就是你写到了哪里程序就能从上往下一步一步的执行到哪里,你在哪写不下去了,程序就在那执行不下去了。
1 print ‘第一天‘ 2 print‘起床‘ 3 print‘吃饭‘ 4 print‘上班‘ 5 print‘下班‘
print ‘回家‘#####新添加的功能 6 print‘睡觉‘ 7 ############################# 8 print ‘第二天‘ 9 print‘起床‘ 10 print‘吃饭‘ 11 print‘上班‘ 12 print‘下班
print ‘回家‘#####新添加的功能
13 print‘睡觉‘
。。。。。
一个月过去了,你要写30个一样的操作,如果突然我想在每天加一个“回家”,那我需要修改30个操作,是不是很麻烦?
面向过程的编程弊端:每次调用的时候都的重写,代码特别长,代码重用性没有,每次增加新功能所有的代码都的修改!
那有什么办法解决上面出现的弊端呢?函数就出现了!!!
3.函数式编程
函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可。
函数可以理解为一个一个的功能块,你把一个大的功能拆分成一块一块的,用某项功能的时候就去调用某个功能块即可!
函数可以调用函数!主函数的作用就是把函数进行串联、调用!函数本身是不能自己执行的如果你不调用就永不执行!
1 def test(day): 2 print day 3 print‘起床‘ 4 print‘吃饭‘ 5 print‘上班‘ 6 print‘下班‘
print‘回家‘#####新添加的功能。 7 print‘睡觉‘ 8 9 test(‘第一天‘) 10 test(‘第二天‘)
。。。。。
同样是上面面向过程的要求,一个月过去了,这次你只需要调用30次test(day)函数就可以了,是不是感觉少了很多代码,如果要添加”回家“这个功能,只需在test()函数里面添加这个功能即可,你不需要去修改别的东西了。
注意:函数式编程,在代码初次加载的时候会把函数地址加载到内存里面。
标签:
原文地址:http://www.cnblogs.com/chushiyaoyue/p/5097380.html