
Python-学习
文章平均质量分 87
Jegoo_CN
这个作者很懒,什么都没留下…
展开
-
Python-生成器
当需要处理一个无限的序列,或是一个需要大量处理计算的数据,可能列表和集合不能胜任的时候,我们就可以考虑使用生成器来完成。恰当的使用生成器可以节省大量内存。1. 生成器语法一般生成器都是由一个或多个yield语句生成的函数,注意生成器是一个函数,且不是return返回。看下面一个简单的生成器:def base_generator(): yield 1 yield...原创 2018-05-02 11:08:48 · 144 阅读 · 0 评论 -
Python-装饰器及高级用法
在Python中装饰器的作用毋庸置疑,他能有效解决代码复用等问题,最重要的是他的方式非常类似面向切面编程。装饰器要解决的问题是如日志记录、用户认证等,当然更不仅限于此。 在讲装饰器前,我们要理解下Python语言的一个特点,那就是在Python里所有的都是对象,包括函数和类。只有在函数和类是对象的前提下,我们才能使用装饰器装饰函数和类。1. 装饰器语法下面我们编写一个简单...原创 2018-04-25 09:54:31 · 447 阅读 · 0 评论 -
Python-上下文管理器
Python中的上下文管理器是一个包装任意代码块的对象。它在处理资源的打开关闭、异常的处理等方面有很好的实现方法。1. 上下文管理器的语法假设我们需要读取一个文件中的数据,代码如下:try: test_file = open('test.txt', 'r') contents = test_file.read()finally: test_file.close()...原创 2018-04-25 14:42:53 · 375 阅读 · 0 评论 -
Python-正则表达式(完整版)
Python中的正则表达式主要是由re模块提供,主要有match、search、findall、finditer等函数,这几个函数的区别:match 返回一个match对象,只从第一个字符开始匹配search 返回一个match对象,可以从任意字符开始匹配,只匹配第一个匹配到的字符findall 返回一个匹配列表,匹配所有可以匹配到的字符finditer 返回一个匹配生成器,匹配所有可以匹...原创 2018-05-04 17:10:41 · 756 阅读 · 0 评论 -
Flask中的线程隔离原理
线程隔离:Python因为GIL(全局解释器锁)的原因,本身实现的多线程就是伪多线程,同一时间只能有一个CPU核运行一个Python应用,这里就有人觉得Python的多线程没有用。这里可以这样理解:其实应用分为两种,一种是CPU运算密集的应用,一种是IO密集的应用,顾名思义,前者是比较依赖CPU资源,后者则是(数据库连接请求、文件读取、网络请求)比较多的应用。相对于IO密集的应用,Python...原创 2019-01-13 02:13:14 · 1080 阅读 · 0 评论 -
Python中的__get__ __getattr__ __getattribute__
Python中的三个类get内置方法(魔法函数),很容易让人混淆,我们在理清这三个方法的用途和区别之前,先看看Python中对于一个对象是怎么获取它的属性的。Python中对象属性的获取链我们在使用obj.value时,Python内部是怎么样的查找顺序呢?(value不是数据描述符,数据描述符请看下面)obj.value等价于getattr(obj, 'value'),会调用基类ob...原创 2019-02-03 01:23:46 · 1065 阅读 · 0 评论 -
Python中的闭包、nonlocal
要了解Python关键字nonlocal的用法,我们要先搞清楚什么是闭包,以及为什么要使用闭包。闭包闭包的定义:能够读取其他函数内部变量的函数。我们现在有一个需要:要设计一个avg的函数,作用是计算不断增加的值的平均值。def mark_avg(): nums = [] def average(num): nums.append(num) ...原创 2019-01-29 14:06:17 · 335 阅读 · 0 评论 -
Python-元类
在Python中,一切皆对象。理解这句话尤为重要,所以创建实例的类(而不是类的实例)也是对象。接触过其他面向对象(如Java)的同学有点难理解,在这些语言中,类的实例是对象,而类只是在内存中的一段代码,需要实例对象的时候调用而已。而在Python中,类也会被实例化成一个对象,这个类对象用于创建类的实例,而实例化类的就是元类。一、理解元类 负责创建其他类的类就是元类,Metac...原创 2019-02-13 17:27:03 · 189 阅读 · 0 评论 -
《算法》-1-初级排序
初级排序算法1. 选择排序首先,找到数组中的最小的那个元素,其次,将它和数组的第一个元素交换位置;再次,在剩下的元素中找到最小的元素,将它与数组的第二的元素交换位置;如此往复,直到将整个数组排序。import randomnums = [random.randint(1, 10000) for i in range(100)]nums_len = len(nums)for ...原创 2019-02-13 21:49:54 · 245 阅读 · 0 评论