python
文章平均质量分 83
很长很长的名字
这个作者很懒,什么都没留下…
展开
-
pip 指定源安装
阿里源pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/豆瓣pip install -r requirements.txt -i https://pypi.douban.com/simple/清华大学pip install -r requirements.txt -i https:...原创 2019-09-02 15:39:34 · 25978 阅读 · 0 评论 -
Django cached_property
Django中的cached_property通过属性描述符实现属性描述符:实现了特定协议的类,这个协议包括 __get__、 __set__ 和 __delete__ 方法。描述符的用法是,创建一个实例,作为另一个类的类属性import datetimeclass cached_property(object): """ Decorator that convert原创 2018-01-29 12:18:01 · 2696 阅读 · 0 评论 -
Django Lazy LazyObject
LazyObject源码地址:django/utils/functional.pyimport copyimport operatorempty = object()def new_method_proxy(func): def inner(self, *args): if self._wrapped is empty:原创 2018-01-26 16:43:18 · 2241 阅读 · 0 评论 -
python nginx time_local
python程序需要输出nginx格式的日志供使用import timefrom datetime import datetime# 获取今天的时间戳 2017/12/29 0:0:0today = time.strptime(time.strftime("%Y%m%d"), "%Y%m%d")time_stamp = int(time.mktime(today))# 格式成ng原创 2017-12-29 17:55:21 · 1329 阅读 · 0 评论 -
python pickle模块 序列化
Python内置的pickle模块能够将Python对象序列成字节流,也可以把字节流反序列成对象。import pickleclass Student: def __init__(self, name, age): self.name = name self.age = age def say(self): print("I am", self.name) >>原创 2017-12-01 11:48:23 · 421 阅读 · 0 评论 -
Python @contextmanager修饰器
开发者可以使用内置的contextlib模块来处理自己所编写的对象和函数,使它们能够支持with语句。该模块提供了名为contextmanager的修饰器。函数只需要经过contextmanager修饰,即可用在with语句之中。这样做比标准写法更便捷。如果按照标准方式来做,那么要定义新类,并提供名为__center__和__exit__的特殊方法from contextlib import原创 2017-11-30 10:37:53 · 1376 阅读 · 0 评论 -
python @wraps修饰器
def decorator1(func): def wrapper(*args, **kwargs): '''decorator''' print('Calling decorated function...') return func(*args, **kwargs) return wrapper@decorator1原创 2017-11-29 16:44:57 · 428 阅读 · 0 评论 -
Python __getattr__ __getattribute__ __setattr__
__getattr__如果某类定义了__getattr__,同时系统在该类对象的实例字典中又找不到待查询的属性,系统就会调用这个方法,这种行为非常适合无结构数据的按需访问。class A: def __init__(self): self.name = 'Tom' def __getattr__(self,name): set原创 2017-11-23 20:07:20 · 497 阅读 · 0 评论 -
python namedtuple
namedtuple(具名元组)类型非常容易定义出精简而又不可变类型数据collections.namedtuple()函数实际上是一个返回 Python 中标准元组类型子类的一个工厂方法。需要传递一个类型名和你需要的字段给它,然后它就会返回一个类,你可以初始化这个类。>>> Student = namedtuple('Student', ('name', 'age', 'se原创 2017-11-14 16:31:21 · 732 阅读 · 2 评论 -
python zip 同时迭代多个序列
zip 可以平行地遍历多个迭代器python 3中zip相当于生成器,遍历过程中产生元祖,python2会把元祖生成好,一次性返回整份列表zip(x,y,z)会生成一个可返回元组 (x,y,z) 的迭代器x = [1, 2, 3, 4, 5]y = ['a', 'b', 'c', 'd', 'e']z = ['a1', 'b2', 'c3', 'd4', 'e5']原创 2017-11-10 16:00:17 · 1456 阅读 · 1 评论 -
python enumerate函数
enumerate()是python的内置函数enumerate能把各种迭代器包装为生成器。作用:生成器每次都会出去值,前者是下标,后者表示从迭代器中获取的下个序列元素。迭代一个序列的同时跟踪正在被处理的元素索引>>> for i, v in enumerate(content):... print(i, v)... 0 hello1 world2 p原创 2017-11-10 14:55:39 · 392 阅读 · 0 评论 -
python 属性描述符
描述符是实现了特定协议的类,这个协议包括 __get__、 __set__ 和 __delete__ 方法。描述符的用法是,创建一个实例,作为另一个类的类属性。class Check: def __init__(self, name): self.name = name # Person实例中属性的名称 def __set__(self, instance, value)转载 2017-11-06 15:42:38 · 709 阅读 · 0 评论 -
python 类属性 实例属性 特性
实例属性遮盖类的数据属性class Student: # 学生类 height = "student height" # 定义身高属性>>> xiaoming = Student() # 实例化小明>>> vars(xiaoming) # vars函数小明obj的__dict__属性,表明没有实例属性{}>>> xiaoming.height # 读取x原创 2017-11-02 11:38:47 · 628 阅读 · 0 评论 -
python @property
有时候我们需要对类属性的值进行一些限制,例如人的身高要大于0此时,符合 Python 风格的做法是,把数据属性换成特性。class Person: def __init__(self, height): self.height = height # 初始化赋值给特性 @property # 装饰读值方法 def heigh原创 2017-11-01 15:42:54 · 212 阅读 · 0 评论 -
python __new__方法
通常我们把 __init__ 称为构造方法,这是从其他语言借鉴过来的术语。用于构建实例的是特殊方法 __new__:这是个类方法,必须返回一个实例,返回的实例会作为第一个参数(即self)传给 __init__ 方法。调用 __init__ 方法时要传入实例,且禁止返回所以 __init__ 方法其实是初始化方法。真正的构造方法是 __new__,不需要自己编写 __new__原创 2017-11-01 10:54:20 · 665 阅读 · 0 评论 -
python 生成目录树
不想在python中调用shell,需要实现一个类似linux tree命令的功能[root@python_test OcApi]# tree.|-- OCenter| |-- Lib| | |-- Mysql.php| | `-- Think.php| |-- Model| | |-- Base.php| | `-- User.php原创 2017-10-12 14:29:53 · 4794 阅读 · 0 评论 -
python concurrent.futures并发库 多进程 多线程
Python3废弃了原来的thread模块,换成了高级的threading模块,concurrent.futures是使用线程的最新方式。(Python3把thread模块重命名为_thread,以此强调这是低层实现, 不应该在应用代码中使用)如果使用场景较复杂,需要更高级的工具multiprocessing模块和threading模块。concurrent.futures模块提供了一个用于异原创 2017-10-10 12:00:34 · 7997 阅读 · 1 评论 -
python yield from的使用
yield from 可用于简化 for 循环中的 yield 表达式。yield from x 表达式对 x 对象操作调用 iter(x),从中获取迭代器。因此,x 可以是任何可迭代的对象。def chain(*its): for it in its: yield from itlist(chain(['a', 'b', 'c', 'd'], range(5), ['hel原创 2017-09-30 18:02:42 · 530 阅读 · 0 评论 -
python 协程
yield 关键字可以在表达式中使用, 而且生成器 API 中增加了 .send(value) 方法。 生成器的调用方可以使用 .send(...) 方法发送数据, 发送的数据会成为生成器函数中 yield 表达式的值。 因此, 生成器可以作为协程使用。 协程是指一个过程, 这个过程与调用方协作, 产出由调用方提供的值协程有四个状态:可以使用inspect.getgeneratorstat原创 2017-09-30 11:41:12 · 395 阅读 · 1 评论 -
python else在for、while、try 语句中使用
for仅当 for 循环运行完毕时( 即 for 循环没有被 break 语句中止)才运行 else 块。>>> for i in range(10):... print i... else:... print 'end'... 0123456789end>>> >>> >>> for i in range(10):... if原创 2017-09-26 11:05:28 · 2790 阅读 · 0 评论 -
python iter函数特殊用法
Python 中迭代对象时会调用 iter(x)。iter 函数还有一个鲜为人知的用法: 传入两个参数, 使用常规的函数或任何可调用的对象创建迭代器。第一个参数必须是可调用的对象,用于不断调用(没有参数),产出各个值。第二个值是哨符,这是个标记值, 当可调用的对象返回这个值时, 触发迭代器抛出 StopIteration 异常,而不产出哨符。from random import翻译 2017-09-25 19:04:33 · 2101 阅读 · 1 评论 -
python 归约、合拢、累加 函数
转载 2017-09-25 17:59:05 · 2199 阅读 · 0 评论 -
python 生成器函数
Python 函数的定义体中有 yield 关键字, 该函数就是生成器函数。 调用生成器函数时, 会返回一个生成器对象。生成器函数的定义体执行完毕后, 生成器对象会抛出StopIteration 异常。def gen_A(): print('start') yield 1 print('starting') yield 2 print('starting') yield 3 pr翻译 2017-09-08 16:34:56 · 590 阅读 · 0 评论 -
python 可迭代对象与迭代器
可迭代的对象使用 iter 内置函数可以获取迭代器的对象。 如果对象实现了能返回迭代器的 __iter__ 方法, 那么对象就是可迭代的。序列都可以迭代; 实现了 __getitem__ 方法, 而且其参数是从零开始的索引, 这种对象也可以迭代。迭代器迭代器要实现 __next__ 方法,返回单个元素,如果没有元素了, 那么抛出 StopIteration 异常。 此外还要实现__翻译 2017-09-07 11:26:01 · 319 阅读 · 0 评论 -
众多中缀运算符的调用机制
中缀运算符正向方法返回NotImplemented,调用反向方法,反向方法返回NotImplemented,使用后备机制及后备机制。转载 2017-09-05 18:00:37 · 299 阅读 · 0 评论 -
中缀运算符方法的名称
转载 2017-09-05 17:19:42 · 1354 阅读 · 0 评论 -
python __add__和__radd__
+ 号运算符号,通常我们用来重载一些实例之间的添加操作,这里讲述一下__add__和__radd__的运算解析流程class A: def __add__(self, other): print("A __add__") def __radd__(self, other): print("A __radd__") class B: pass>>> a = A()原创 2017-09-04 10:59:23 · 25070 阅读 · 4 评论 -
python 多重继承的方法解析顺序
任何实现多重继承的语言都要处理潜在的命名冲突, 这种冲突由不相关的祖先类实现同名方法引起 class A: def say(self): print("A Hello:", self)class B(A): def eat(self): print("B Eating:", self)class C(A): def ea...翻译 2017-08-30 11:22:55 · 7950 阅读 · 2 评论 -
python 截取文件和文件名
>>> path = '/etc/passwd'>>> import os>>> os.path.dirname(path)'/etc'>>> os.path.basename(path)'passwd'原创 2017-08-07 16:12:38 · 4988 阅读 · 1 评论 -
python 深复制和浅复制
>>> l1 = [1,[2,3],(4,5)]>>> l2 = list(l1)>>> l1.append(99)>>> l1[1, [2, 3], (4, 5), 99]>>> l2[1, [2, 3], (4, 5)]>>> l1[1].remove(2)>>> l1[1, [3], (4, 5), 99]>>> l2[1, [3], (4, 5)]>>> l2[1]原创 2017-08-03 14:42:26 · 361 阅读 · 0 评论 -
python 列表推导和生成器表达式
colors = ['black', 'white']sizes = ['S', 'M', 'L']>>> ('%s %s' % (c, s) for c in colors for s in sizes) at 0x7fcb044d5518>>>> ['%s %s' % (c, s) for c in colors for s in sizes]['black S', 'black转载 2017-07-03 16:22:11 · 461 阅读 · 0 评论 -
python __str__ 和 __repr__
Python 有一个内置的函数叫 repr, 它能把一个对象用字符串的形式表达出来以便辨认, 这就是“字符串表示形式”。 repr 就是通过 __repr__这个特殊方法来得到一个对象的字符串表示形式的。 如果没有实现__repr__, 当我们在控制台里打印一个向量的实例时, 得到的字符串可能会是 。__repr__ 所返回的字符串应该准确、 无歧义, 并且尽可能表达出如何用代码创建出原创 2017-07-03 10:52:57 · 316 阅读 · 0 评论 -
python 合并拼接字符串
如果你想要合并(列表,元组,字典,文件,集合或生成器等)的字符串是一个序列或者iterable 中,最快的方式就是使用join() 方法>>> a = ["hello", "world"]>>> a['hello', 'world']>>> ' '.join(a)'hello world'>>> ','.join(a)'hello,world'>>> ''.joi原创 2017-05-11 20:05:07 · 8160 阅读 · 0 评论 -
python 字符串开头或结尾匹配
通过指定的文本模式去检查字符串的开头或者结尾,比如文件名后缀,URL 等等>>> file = 'a.txt'>>> file.startswith('a')True>>> file.endswith('.txt')True检查多种匹配可能>>> file.endswith(('.txt', '.js', '.xml'))True>>> file.startswith原创 2017-05-11 18:18:51 · 2449 阅读 · 0 评论 -
X分钟速成Python3
# 用井字符开头的是单行注释""" 多行字符串用三个引号 包裹,也常被用来做多 行注释"""###################################################### 1. 原始数据类型和运算符##################################################### 整数3 # => 3#转载 2017-04-27 15:41:43 · 405 阅读 · 0 评论 -
python的Jenkins接口调用
本来非常喜欢偷懒最好就是不干活那种所以最近在研究把Jenkins模块集成起来做成傻瓜界面这样就给他们用本人Python搓望大神不要喷,多多指导jenkins的Python模块模块安装pip:pip install python-jenkinseasy_install:easy_install python-jenkins使用:class jenk原创 2016-07-27 22:57:13 · 6326 阅读 · 0 评论