第一个代表贪心匹配,第二个代表非贪心;?在一般正则表达式里的语法是指的"零次或一次匹配左边的字符或表达式"相当于{0,1}而当?后缀于*,+,?,{n},{n,},{n,m}之后,则代表非贪心匹配模式,也就是说,尽可能少的匹配左边的字...
面向对象是相当于面向过程而言的,面向过程语言是一种基于功能分析的,以算法为中心的程序设计方法,而面向对象是一种基于结构分析的,以数据为中心的程序设计思想。在面向对象语言中有一个很重要的东西,叫做类。面向对象有三大特性:封装、继承、多态。
将对象私有化,通过共有方法提供一个读取数据的接口classperson:def__init__(self,x):self.__age=10defage(self):r...
魔法方法就是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被Python所调用,你可以定义自己想要的行为,而这一切都是自动发生的,它们经常是两个下划线包围来命名的(比如__...
不可变对象,该对象所指向的内存中的值不能被改变。当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一个新的地址,变量再指向这个新的地址。可变对象,该对象所指向的内存中的值可以被改变。变量(准确的说...
yield就是保存当前程序执行状态。你用for循环的时候,每次取一个元素的时候就会计算一次。用yield的函数叫generator,和iterator一样,它的好处是不用一次计算所有元素,而是用一次算一次,可以节省很多空间,gener...
N=100print([[xforxinrange(1,100)][i:i+3]foriinrange(0,100,3)])
X=(iforiinrange(10))X是generator类型
迭代器是遵循迭代协议的对象。用户可以使用iter()以从任何序列得到迭代器(如list,tuple,dictionary,set等)。另一个方法则是创建一个另一种形式的迭代器——generator。要获取下一个元素...
在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包。
装饰器本质上是一个callableobject,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。importtimefromfunctoolsimportwrapsdef...
单例模式应用的场景一般发现在以下条件下:资源共享的情况下,避免由于资源操作时导致的性能或损耗等,如日志文件,应用配置。控制资源的情况下,方便资源之间的互相通信。如线程池等,1,网站的计数器2,应用配置3.多线程池4数据库配置...
python2classA(object):__instance=Nonedef__new__(cls,*args,**kwargs):ifcls.__instanceisNone...
设计模式是经过总结,优化的,对我们经常会碰到的一些编程问题的可重用解决方案。一个设计模式并不像一个类或一个库那样能够直接作用于我们的代码,反之,设计模式更为高级,它是一种必须在特定情形下实现的一种方法模板。常见的是工厂模式和单例模式
lambda函数是匿名函数,使用lambda函数能创建小型匿名函数,这种函数得名于省略了用def声明函数的标准步骤