name = "老王"
# 第一步:买茶壶和茶叶
print(老王在超市买了一个茶壶和一袋茶叶...")
第二步:取水
老王拿出了珍藏已久的农夫山泉... 第三步:生火
老王掏出打火机,点燃了一堆木屑... 第四步:泡茶
def teapot(water,tea):
正在泡茶啊)
咕噜噜。。茶叶泡好了return 使用{0}泡好的{1}.format(water,tea)
老王正在泡茶..)
第五步:喝茶
res = teapot(农夫山泉",铁观音老王正在喝...函数式编程思想
特点:无变量,无for循环
优点:代码重复率低
缺点:程序易读性差
函数式编程是与数学函数高度结合的编程方式,纯粹的函数式编程语言没有变量只有常量,代码重复率较低,且功能一旦完善就不会出错,在函数中没有for
循环,所有的for
循环用递归实现,函数式编程的一个特点就是允许把函数本身作为参数传入另一个参数,还允许返回一个函数。此外,Python中的lambda
以及filter
,map
,reduce
等等都是从函数式编程中提取出来的一些优秀且符合Python核心思想的好案例。
自定义重现map
res = map(lambda x:x-1,[i for i in range(10)])
print(list(res))
my_map(func,iterableser):
res = []
count = 0
process(func,iterableser,count):
if len(iterableser):
res.append(func(iterableser.pop(count)))
process(func,count)
else:
return
process(func,count)
count+=1
res
res = my_map(print(res)
面向对象编程思想
特性:抽象 封装 继承 多态
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护
缺点:性能比面向过程低
从世界观的角度阐述面向对象思想
对象:具体某一类的实际体
类:抽象的概念,实际上是不存在的
面向对象是一种思想,从世界观的角度可以认为:面向对象的基本哲学是认为世界是由各种各样具有自己的运动规律和内部状态的对象所组成的;不同对象之间的相互作用和通讯构成了完整的现实世界。因此,人们应当按照现实世界这个本来面貌来理解世界,直接通过对象及其相互关系来反映世界。这样建立起来的系统才能符合现实世界的本来面目。
而从方法学的角度可以认为:面向对象的方法是面向对象的世界观在开发方法中的直接运用。它强调系统的结构应该直接与现实世界的结构相对应,应该围绕现实世界中的对象来构造系统,而不是围绕功能来构造系统。
class
并不等于 面向对象 .... 而是属于Python里面向对象编程中的一种语法:
dog(name,sex,colour):
init(name,colour):
dic1 = {
name:name,sex:sex,1)">colour:colour,1)">bark:bark,1)">get_angry:get_angry,}
dic1
bark(dic1):
一只{0}颜色的{1}狗,它的名字是{2},它现在在朝你汪汪叫".format(dic1["],dic1[]))
get_angry(dic1):
{0}生气了,它朝你扑过来了!]))
大黄公黄(d1)
d1[](d1)
d1["](d1)
class Dog(object):
def __init__(self,name,colour):
self.name = name
self.sex = sex
self.colour = colour
bark(self):
.format(self.colour,self.sex,self.name))
get_angry(self):
.format(self.name))
d1 = Dog((d1)
d1.bark()
d1.get_angry()
使用class
和上面def
定义的思想都是一样的,他们同属于面向对象程式设计,但是class
更为方便,还具备一些def
不具备的功能。
请记住,用面向对象语言写程序,和一个程序的设计是属于面向的对象设计是两种不同的概念,八杆子打不着。你可以用class
去利用面向过程的方式写代码,当然也可以用def
设计成面向对象的程序。
从程序功能角度来阐述面向对象思想
对象:存放数据与功能集合体的容器,也可称之为属性与方法。
类:类也是对象,存放具体实例对象公用的一些数据和功能。
面向对象的核心点在于对象二字,一切可以存放数据和功能的容器皆可称之为对象,面向对象实际上如果你真的已经接触过有一些时间了你会发现什么世界观的面向对象全是扯淡,我就觉得它的一个功能很强大!封装使用!用它来装东西使用非常方便!对,使用对象来装东西简直不要太好用。
其实从程序功能角度来分析面向对象没什么好说的,用多了之后就会知道。别跟我扯什么有用没用的,我就是这么用面向对象的。你可以说我low,但是我告诉你我根本做不到将现实世界的投影完全存放到程序中,对我来说这是扯淡。
有了面向对象我能做什么:
Server(object):
ip = 127.0.0.1
port = 8008
(self):
self.__state = None
run(self):
"""启动服务"""
本机IP:[{0}] 端口:[{1}] 服务启动成功.format(Server.ip,Server.port))
self.__state = 1
stop(self):
停止服务"""
self. 0
正在停止服务)
get_status(self):
if self.__state == 1正在运行)
没有运行 send_client(self,clent_ip):
本机IP [{0}] 正在向目标IP [{1}] 发送数据 Server()
server1.run()
server1.send_client(127.0.0.23)
server1.stop()
server1.get_status()
我用面向对象就是这样,一些公共的数据我想要了我就从类里面去拿,没有了我就实例化自己造。
# 我觉得它的使用很方便,让代码看起来很整洁,我就这样用,有问题吗?
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!