python术语

Python七大原则,24种设计模式

链接:link
常见原则:开闭原则,单一原则…

python的设计模式
1.单例模式
单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。
当你希望在整个系统中,某个类(如读取配置文件的实例对象)只能出现一个实例时,单例对象就能派上用场
好处:减少内存资源浪费。
class A(object):
__instance=None
def new(cls, *args, **kwargs):
if cls.__instance is None:
cls.__instance=object.new(cls)
return cls.__instance
else:
return cls.__instance
test1=A()
test2=A()
print(test1,test2)

应用场景:
1.资源共享的情况下,避免由于资源操作时导致的浪费,如日志文件,应用配置
2.控制资源的情况下,方便资源之间的相互通信,如线程池。1.网站的计数器 2.应用配置
3.多线程池,4数据库配置,数据库连接池。5.应用程序的日志应用

2.工厂
程序运行期间,用户传递参数给工厂,由工厂根据参数去创建哪一种对象
3.装饰器模式:扩展函数功能,而不修改内部代码。
4.生成器
5.迭代器
6 观察者 7 组合

编程分为两类:系统编程和应用编程。系统编程是编写库,而应用编程就是利用写好的各种库
来编写程序,即应用。库的接口就称为API
什么是回调函数?如何通信的
有些库函数要求应用先传给它一个函数,好在合适的时候调用,以完成目标任务。
这个被传入,后又被调用的函数就称为回调函数
作用:提供了非常大的灵活性。程序可以在运行时,通过登记不同的回调函数,来决定
,改变中间函数的行为

lambda匿名函数

定义:一个可以接受任意多个参数,并且返回单个表达式的函数
优点:1.比较方便,即用即仍,适合完成一项功能,但只在一处使用
2.一般用于filter,map,这样的函数式编程服务
3.作为回调函数,传递给某些应用,如消息处理

闭包的概念:

在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量
称之为闭包。
好处:保存局部信息不被销毁。作用:装饰器

装饰器

本质上是一个python函数,它可以让其他函数在不修改代码的情况下扩展功能,装饰器的返回对象也是
一个函数的对象。作用场景:插入日志,性能测试,事务处理,缓存,权限的验证:
可以减少大量相同的代码

迭代器和生成器的概念和区别?

迭代器:记录可迭代对象的位置。特点:只前不后退
只要对象有iter()和next()方法,就可以用作迭代。for语句中调用可迭代对象的iter()方法,iter()方法
会返回定义了next()方法的迭代器本身,它在容器中逐个访问容器内元素。
生成器:在python中,使用了yield的函数称为生成器
调用生成器返回迭代器对象
在调用生成器运行的过程中,每次遇到yield函数时,会暂停并保存当前所有的运行信息,返回yield的值
并在下一次执行next()方法时从当前位置继续运行

python中的地址问题

如int,float,str,tuple这种不可变类型(内存中的值不被改变),每一个固定的数据都是固定的地址,无论运行多少次都是同一个地址
因当改变变量的值时,实际上是指向了另一个地址

如list,dict,set这种可变类型,每次创建同样的值都是不同的地址,因此改变变量时,改变的是当前地址

私有化问题

当一个类中以__变量名命名时,就不能直接读取该数据,可以通过在类中写个方法返回该值,然后运行该方法
或者用@property修饰方法后直接读取
class MyCls(object):
__weight=50
@property#以访问属性的方式来访问weight方法
def weight(self):
return self.__weight
if name==‘main’:
obj=MyCls()
print(obj.weight)
obj.weight=12#报错

面对对象的理解

面对对象是面对过程而言的,面对过程是一种基于功能分析,以算法为中心的程序设计方法,
而面相对象是基于结构分析,以数据为中心的程序设计思想

三大特性:封装,多态,继承

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值