随笔分类 -  Python

【转载】Python 一等函数
摘要:原文网址:https://mp.weixin.qq.com/s/OUPcqBJiP0_wyn_Bm7IvAQ Python 一等函数 在 Python 中,不仅整数、字符串、字典是一等对象,连函数也被当做一等公民。这说明了什么问题,先来看看一等对象的定义: 在运行时创建 能赋值给变量或数据结构中的元 阅读全文

posted @ 2018-09-20 10:36 nicolas_Z 阅读(109) 评论(0) 推荐(0)

【转载】Python 对象引用与可变性
摘要:原文地址:https://mp.weixin.qq.com/s/20FP3gqwdJrxcCENVs115w Python 对象引用与可变性 Python 中的变量都是引用式的,这个概念很容易在写代码的时候引入 bug,还不易察觉。这篇文章就是讲述 Python 中对象的引用和可变性,然而首先要抛弃 阅读全文

posted @ 2018-09-20 09:45 nicolas_Z 阅读(128) 评论(0) 推荐(1)

【转载】浅谈 Python 的 with 语句
摘要:原文地址:https://www.ibm.com/developerworks/cn/opensource/os-cn-pythonwith/ 引言 with 语句是从 Python 2.5 开始引入的一种与异常处理相关的功能(2.5 版本中要通过 from __future__ import wi 阅读全文

posted @ 2018-09-20 09:41 nicolas_Z 阅读(119) 评论(0) 推荐(0)

Python学习之路(46)——pdb调试
摘要:pdb是Python自带的一个包,为Python程序提供一种交互的源代码调试功能,主要包括设置断点、单步调试、进入函数调试、查看当前代码段等。 下表为pdb常用命令: 使用pdb.set_trace()进入调试模式。 如下示例: 运行后进入pdb调试状态: 使用常用命令: 使用函数的例子: 运行后, 阅读全文

posted @ 2018-03-28 20:20 nicolas_Z 阅读(472) 评论(0) 推荐(0)

Python学习之路(45)—— *args和**kwargs
摘要:*args和**kwargs 主要用于函数定义,可以将不定数量的参数传递给一个函数。 前者用来发送一个非键值对的可变数量参数列表给函数,后者用来发送键值对的可变数量参数列表给函数。 先看*args的例子: 如果还想再*args后再加一个参数的话,传递给函数的参数需要使用关键字参数,不然会报错,比如: 阅读全文

posted @ 2018-03-28 19:46 nicolas_Z 阅读(156) 评论(0) 推荐(0)

Python学习之路(44)——命名空间与作用域
摘要:命名空间NameSpace 我们知道想要使用模块中的函数,就需要导入模块(import),此时就需要考虑命名空间的问题,否则使用函数就会报错。 命名空间是从名字到对象的一个映射(a mapping from name to objects),按照字典来实现,键是变量名,值就是变量的值。 一些常见的命 阅读全文

posted @ 2018-03-23 11:23 nicolas_Z 阅读(186) 评论(0) 推荐(0)

Python学习之路(43)——自定义容器(container)
摘要:Python中常见的容器类型包括dict、tuple、list和string。其中,tuple和string是不可变容器,dict和list是可变容器。其区别在于,不可变容器一旦赋值后,其元素不能进行修改。 然而,有时针对特殊需求,我们还需要自定义容易。 1、自定义不可变容器类型:需要定义__len 阅读全文

posted @ 2018-03-22 17:33 nicolas_Z 阅读(3528) 评论(0) 推荐(0)

Python学习之路(42)——描述器(Descriptor)
摘要:什么是描述器(有些地方也称为描述符,这里统一以描述器)? 一般来说,一个描述器是一个有“绑定行为”的对象属性(object attribute),其属性的访问控制被描述符协议方法重写。这些方法是__get__()、__set__()和__delete__(),如果一个对象中只要包含了这三种方法中至少 阅读全文

posted @ 2018-03-22 16:54 nicolas_Z 阅读(285) 评论(0) 推荐(0)

Python学习之路(41)——Python的"__getattr__"和"__getattribute__"
摘要:__getattr__ __getattr__在当前主流的Python版本中都可用,重载__getattr__方法对类机器实例未定义的属性有效。即,如果访问的属性(包括类属性和实例属性)存在,就不会调用__getattr__方法。 Python官方文档描述: __getattribute__ __g 阅读全文

posted @ 2018-03-22 15:35 nicolas_Z 阅读(437) 评论(0) 推荐(0)

Python学习之路(40)——详解Python的下划线
摘要:单下划线(_) 单下划线有三种用法: 1、在解释器中: 在这种情况下,"_"代表交互解释器会话中上一条执行的语句结果。 2、作为一个名称: 在这种情况下,"_"作为一个临时名称。 3、国际化: 这种情况下,"_"作为一个函数使用,通常用于实现国际化和本地化字符串之间翻译查找的函数名称。例如在Djan 阅读全文

posted @ 2018-03-22 10:39 nicolas_Z 阅读(200) 评论(0) 推荐(0)

Python学习之路(39)——理解Python中的线程
摘要:首先我们看一个单线程的例子: 1)urls列表中的url地址按顺序的被请求 2)直到cpu从一个url获得了response(getcode()),否则不会去请求下一个url 3)网络请求经历较长时间,所以cpu在等待网络请求回应时一直处于闲置状态 再看看多线程是怎么样的: 可以看出,输出结果中的u 阅读全文

posted @ 2018-03-19 21:24 nicolas_Z 阅读(141) 评论(0) 推荐(0)

Python学习之路(38)——可变对象作为函数默认参数值会怎样?
摘要:我们知道函数有默认参数,如果使用可变对象(例如list、dict等)作为函数的默认参数,会怎样? 首先我们看一个例子: 很明显,我们的最初想法是,无论我们不输入date参数调用function函数多少次,结果都应该是字符串'a'被分配到一个king的list里。但是很明显,最终这个结果不是我们想要的 阅读全文

posted @ 2018-03-19 10:59 nicolas_Z 阅读(203) 评论(0) 推荐(0)

Python学习之路(37)——元类metaclass
摘要:首先,再次强调一点,在Python的世界里,一切皆对象。无论是数值、字符串、序列(包括列表、元组等)、字典、函数、模块、类和实例,甚至文件等等。 元类(metaclass)是从Python 2.2版本开始引入的,它是用于定制类的创建行为。 我们看一下创建类和实例的例子: 注意,例子中的type(Fo 阅读全文

posted @ 2018-03-17 20:28 nicolas_Z 阅读(153) 评论(0) 推荐(0)

Python学习之路(36)——面向对象
摘要:封装 封装:将内容封装到某个地方,后续再去调用被封装在某处的内容。 1、将内容封装到某处 self是一个形参,当执行obj1 = Foo('nicolas', 18)时,self等于obj1。(obj2一样) 'nicolas'和18这2个内容被封装到了对象 obj1 和 obj2 中,每个对象都有 阅读全文

posted @ 2018-03-16 18:34 nicolas_Z 阅读(253) 评论(0) 推荐(0)

Python学习之路(35)——Python实现switch case语句
摘要:Python本着“简单”的设计原则,控制语句只有判断流程if...else...和循环语句while/for,并没有类似于C语言的switch语句。 这样,带来的问题是遇到多条件判断时只能使用if判断语句,导致一大堆的if语句,代码丑陋不美观。 有没有办法实现switch语句呢,答案必须是有的!我们 阅读全文

posted @ 2018-03-16 11:23 nicolas_Z 阅读(13974) 评论(0) 推荐(0)

Python学习之路(34)——subprocess模块
摘要:Python subprocess模块用来管理子进程,以取代一些旧模块的方法(如os.system、os.spawn*、os.popen*、popen2.*、commands.*)。不但可以调用外部的命令作为子进程,而且可以连接到子进程的input/output/error管道,获取相关的返回信息。 阅读全文

posted @ 2018-03-15 11:30 nicolas_Z 阅读(406) 评论(0) 推荐(0)

Python学习之路(33)——正则表达式re模块
摘要:re模块提供与Perl中类似的正则表达式匹配操作。 其中,被搜索的模式和字符串都可以是Unicode字符串以及8-bit字符串。但是,在匹配时,Unicode字符串和8-bit字符串不能混用在一起(因为,不能使用字节模式去匹配字Unicode字符串,反之亦然。);相似的,当准备做替换操作时,替换的字 阅读全文

posted @ 2018-03-14 20:16 nicolas_Z 阅读(205) 评论(0) 推荐(0)

Python学习之路(32)——日志处理模块logging
摘要:一、什么是日志? 日志是一种可以追踪某些软件运行时所发生事情的方法。我们在代码中调用日志记录相关的方法来表明发生了的事件。一个事件可以用一个包含可选变量数据的消息来描述。另外,事件也有严重性级别,包括:Debug、Info、Notice、Warning、Error、Critical、Alert、Em 阅读全文

posted @ 2018-03-13 15:47 nicolas_Z 阅读(268) 评论(0) 推荐(0)

Python学习之路(31)——文件压缩解压缩zipfile和tarfile模块
摘要:一、zipfile模块 包含2个Exception类: zipfile.BadZipFile和zipfile.LargeZipFile 3个类: zipfile.ZipFile(filename[, mode[, compression[, allowZip64]]])):构造zipfile对象。m 阅读全文

posted @ 2018-03-13 10:29 nicolas_Z 阅读(1046) 评论(0) 推荐(0)

Python学习之路(30)——hashlib模块
摘要:在Python 3中,hashlib模块提供了常见的摘要算法,用于加密相关的操作,代替了Python 2的md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512和MD5算法。 一、什么是摘要算法? 摘要算法又称为哈希算法、散列算法。通过一个函数,把任意长度的 阅读全文

posted @ 2018-03-12 17:01 nicolas_Z 阅读(380) 评论(0) 推荐(0)

导航