功能:为已存在的函数或对象添加额外的功能原则:不改变源代码为其添加功能不改变函数的调用方式方法:装饰器=高阶函数+嵌套函数(高阶函数:一个函数可以作为参数传递给另外一个函数,或者,一个函数的返回值是一个函数,即函数的入口地址)函数名作为参数传递给装饰器(@decorator_name)装饰函数返回函数名(函数地址)注意:默认情况下,装饰器会修改名字和文档说明,但是可以使用functools中的@wraps()解决。@wraps接受一个函数来进行装饰,并加入
系统 2019-09-27 17:51:46 2085
如下所示:importlogging#创建一个loggerlogger=logging.getLogger('mylogger')logger.setLevel(logging.DEBUG)#创建一个handler,用于写入日志文件fh=logging.FileHandler('test.log')fh.setLevel(logging.DEBUG)#再创建一个handler,用于输出到控制台ch=logging.StreamHandler()ch.set
系统 2019-09-27 17:51:25 2085
无论哪种编程语言,时间肯定都是非常重要的部分,今天来看一下python如何来处理时间和python定时任务,注意咯:本篇所讲是python3版本的实现,在python2版本中的实现略有不同,有时间会再写一篇以便大家区分。1.计算明天和昨天的日期#!/usr/bin/envpython#coding=utf-8#获取今天、昨天和明天的日期#引入datetime模块importdatetime#计算今天的时间today=datetime.date.today(
系统 2019-09-27 17:50:43 2085
UnicodeDecodeError:'gbk'codeccan'tdecodebyte0x80inposition128:illegalmultibytesequence说到底是open()使用方法。原本程序是这样的:(重点看第4行)fromtkinterimport*importosdefopenFile():f=open('D:\Pythoncharmprojccts\SC\main_window.py',mode='r')whileTrue:dat
系统 2019-09-27 17:50:35 2085
最近,我们老大要我写一个守护者程序,对服务器进程进行守护。如果服务器不幸挂掉了,守护者能即时的重启应用程序。上网Google了一下,发现Python有很几个模块都可以创建进程。最终我选择使用subprocess模块,因为在Python手册中有这样一段话:Thismoduleintendstoreplaceseveralother,oldermodulesandfunctions,suchas:os.system、os.spawn*、os.popen*、po
系统 2019-09-27 17:50:33 2085
一、缘起前不久,我在翻译GuidovanRossum(Python之父)的文章时,给他留言,申请非商业用途的翻译授权。过程中起了点小误会,略去不表,最终的结果是:他的文章以CCBY-NC-SA4.0许可协议进行授权。部分对话如下:CC协议是一种授权许可协议,我曾看到过几次,但了解不多,所以便查阅了相关的内容。本文主要是作个记录,既是加深自己的理解,也给有需要的同学一个参考。二、著作权、著佐权与自由版权对于知识产权,通常有如下几种说法:AllRightsRe
系统 2019-09-27 17:50:18 2085
一、写在前面前几天在微信上看到这样一篇文章,链接为:https://mp.weixin.qq.com/s/rl6Sgv3uk_IpoFAx6cWa8w,在这篇文章中,有这样一段话,吸引了我的注意:在Linux中ls是一个使用频率非常高的命令了,可选的参数也有很多,算是一条不得不掌握的命令。Python作为一门简单易学的语言,被很多人认为是不需要认真学的,或者只是随便调个库就行了,那可就真是小瞧Python了。那这次我就要试着用Python来实现一下Linu
系统 2019-09-27 17:49:52 2085
1.open使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。file_object=open('thefile.txt')try:all_the_text=file_object.read()finally:file_object.close()注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法。2.读文件读文本
系统 2019-09-27 17:49:43 2085
关于我一个有思想的程序猿,终身学习实践者,目前在一个创业团队任teamlead,技术栈涉及Android、Python、Java和Go,这个也是我们团队的主要技术栈。Github:https://github.com/hylinux1024微信公众号:终身开发者(angrycode)在前一篇《一文彻底搞懂Python可迭代(Iterable)、迭代器(Iterator)和生成器(Generator)的概念》的文中,知道生成器(Generator)可由以下两
系统 2019-09-27 17:49:37 2085
1、输入'''按照空格分开,等同于list,每个元素类型默认str'''a=input().split()'''输入n,然后输入n个数字'''n=input().split()a=[int(i)foriininput().split()]2、字符串逆转'''reverse为string的逆转'''reverse=string[::-1]'''时间复杂度为O(1)'''3、List'''------------------------------------
系统 2019-09-27 17:49:34 2085