当前搜索:

python里除了继承修改类之外还有装饰器也能

python是面向对象的语言,它有类的继承,因此它是可以修改基类函数的功能。但是除了继承之外,类函数的功能也可以使用装饰器来修改,这种功能叫做装饰类。为了学习装饰类,需要好好地查看下面的代码:#python 3.6 #定义装饰器函数 def decorator(aClass): class newClass: def __init__(self, age): ...
阅读(466) 评论(0)

python里装饰器级连的使用

从前面的文章来看,学会了为什么要使用装饰器,也明白了装饰器是什么了,但是你也许会问,是否可以在装饰器前面再添加一层装饰器,会怎么样呢?就像大楼一样,一层一层地叠在一起。其实是可以的。现在我们就来学习这种堆叠技术,与类的继承是有相似之处,可以不断地继承下去。代码如下:#python 3.6 def star(func): def inner(*args, **kwargs): ...
阅读(444) 评论(0)

python里使用带参数的装饰器

在前面一文《python里为什么需要使用装饰器(decorator)》里,我们学习了为什么需要装饰器,知道装饰器就是为了不修改原来函数的代码,又达到增加功能的作用。其实为了装饰器更通用化,那么装饰器是否也可以带参数呢?其实是可以的,这样更加通用化了,达到共享极点。在前面也学习《为什么要使用闭包(closures)》一文,知道参数可以嵌套函数里实现隐藏,并且实现全局参数的功能,与函数一起绑定。因此只...
阅读(525) 评论(0)

python里为什么需要使用装饰器(decorator)

为什么需要使用装饰器呢?其实很多人学习python之后都会问这个问题。这一次,我来深入地学习一下什么是装饰器,以及为什么需要它。其实这个装饰器就是我们这样的程序员太“懒”了,基本上什么事情都想少做,追求是DRY,那么什么是DRY,如下:DRY(Don't repeat yourself ),字面意思来看:"不要重复自己"。强调的意思就是在进行编程时相同的代码不要重复写,最好只写一次,然后可以在其他...
阅读(499) 评论(0)

为什么要使用闭包(closures)

闭包是一个难学的概念,首先要搞清楚为什么需要闭包?其实闭包的出现往往是函数式编程的语言里,在面向对象的编程语言里是可以不需要闭包的。因为闭包作用如下:1. 避免使用全局变量,实现数据隐藏和保持,也就是面向对象的特性:封装。2. 当成员变量比较少,以及方法只有一个时,比类更简单实现。3. 数据和函数一起封装,适应异步或并发运行。什么时候定义了一个闭包当在一个函数里嵌套定义一个函数时,就会产生一个闭包...
阅读(495) 评论(0)

在win10里从源码编译nodejs的安装包和学习源码

大家其实都是从网站上下载直接安装文件的,为什么还要从源码安装呢?可能原因就两个,一个想自己优化,添加一个特定的东西;另一个想学习nodejs的实现,知道为什么这样实现的。我这里主要为学习nodejs的实现,所以要到下面的网站下载源码:https://nodejs.org/en/download/源码在这个连接里:https://nodejs.org/dist/v6.11.3/node-v6.11....
阅读(584) 评论(0)

python里求解物理学上的双弹簧质能系统

物理的模型如下:在这个系统里有两个物体,它们的质量分别是m1和m2,被两个弹簧连接在一起,伸缩系统为k1和k2,左端固定。假定没有外力时,两个弹簧的长度为L1和L2。由于两物体有重力,那么在平面上形成摩擦力,那么摩擦系数分别为b1和b2。所以可以把微分方程写成这样:这是一个二阶的微分方程,为了使用python来求解,需要把它转换为一阶微分方程。所以引入下面两个变量:这两个相当于运动的速度。通过运算...
阅读(427) 评论(0)

python里预先编译正则表达式提高效率

在re的正则表达式模块里,可以通过模块的方式来访问正则表达式,但是如果重复多次地使用正则表达式,最好是使用compile函数把正则表达式编译成对象RegexObject,这样会大大地提高搜索的效率,因为基于非编译方式访问时,是使用模块里的一小块缓冲来进行的。如下面的例子:import re # Precompile the patterns regexes = [ re.compile(...
阅读(395) 评论(0)

python里使用正则表达式搜索单词

在python里有强大的正则表达式模块re,用来它进行模式匹配是非常方便的,比如下面的例子,就是用来从一段文字里查找一个单词,如下:import re pattern = 'this' text = 'http://blog.csdn.net/caimouse is great, this is great way!' match = re.search(pattern, text) s =...
阅读(352) 评论(0)

python里查看string的常量字符串

在string模块里定义有很多常量的字符串,当你写程序时常常会使用它们,不用自己去重新输入。像下面的例子就是遍历里面的常量字符串打印出来,这里使用inspect模块的功能。import inspect import string def is_str(value): return isinstance(value, str) for name, value in inspect.g...
阅读(380) 评论(0)

python里修改string.Template的正则表达式

通过下面的例子可以查看到string.Template的正则表达式:import string t = string.Template('$var') print(t.pattern.pattern)结果输出如下:    \$(?:      (?P\$) |   # Escape sequence of two delimiters      (?P[_a-z][_a-z0-9]*)     ...
阅读(361) 评论(0)

python里怎么样求解微分方程?

有很多大学生问我,学习python有什么用呢?我说:你至少可以用来解微分方程,如下面的例子,就是解决微分方程:y"+a*y'+b*y=0 代码如下:#y"+a*y'+b*y=0 from scipy.integrate import odeint from pylab import * def deriv(y,t): # 返回值是y和y的导数组成的数组 a = -2.0 ...
阅读(784) 评论(0)

python里使用string.Template实现自定义转义字符和正则表达式替换

有时修改默认的转义字符$不合适,可以进行自定义为%,又或者需要对替换占位变量进行正则表达式的模式识别,如下面的代码:import string class MyTemplate(string.Template): delimiter = '%' idpattern = '[a-z]+_[a-z]+' template_text = ''' Delimiter : %% ...
阅读(369) 评论(0)

python里使用string.Template怎么避免抛出异常

当你使用string.Template时,有于某些元素不出现,那么就会抛出异常,但有时你不想抛出异常,怎么办呢?可以像下面使用代码这样,使用safe_substitute函数:import string values = {'var': 'foo'} t = string.Template("$var is here but $missing is not provided") try: ...
阅读(339) 评论(0)

python里使用string.Template替换字符1

在python的字符串格式化里,以前常常使用print() %的格式来进行,但这种格式会让有经验的程序也会出错,比如%(name)s。另外在只作字符串替换的场合时,使用%这种格式化,也比较复杂,那么有没有简单的字符串替换的方法呢?答案是有的,就是使用string.Template。在string.Template里,它使用$为替换名称的开始,比如$var这样写。当然也可以使用${var}这种方式,...
阅读(445) 评论(0)
1696条 共114页首页 上一页 1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:5898477次
    • 积分:76234
    • 等级:
    • 排名:第22名
    • 原创:1624篇
    • 转载:61篇
    • 译文:11篇
    • 评论:2102条
    文章存档