Coderyang的笔记

知识就是财富


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

协程中的async-with和async-for

发表于 2019-06-03 | 分类于 Python | | 阅读次数:
字数统计: 1,177 字 | 阅读时长 ≈ 5 分钟
本文翻译自Python的开发者指南 PEP 492 异步上下文管理器async with异步上下文管理器指的是在enter和exit方法处能够暂停执行的上下文管理器。 为了实现这样的功能,需要加入两个新的方法:__aenter__ 和__aexit__。这两个方法都要返回一个 awaitable类型的值。 异步上下文管理器的一种使用方法是: 123456class AsyncContextMana ...
阅读全文 »

使用configparser来管理配置

发表于 2019-05-24 | 分类于 Python | | 阅读次数:
字数统计: 241 字 | 阅读时长 ≈ 1 分钟
我们在项目开发过程中 有时会做一些配置项 这些配置项可能根据环境不同有不同的值。为了方便配置和使用推荐使用configparser来管理配置。 官方文档地址在这→ configparser 此模块提供了它实现一种基本配置语言 ConfigParser 类,这种语言所提供的结构与 Microsoft Windows INI 文件的类似。 你可以使用这种语言来编写能够由最终用户来自定义的 Pytho ...
阅读全文 »

高效的itertools模块

发表于 2019-05-22 | 分类于 Python | | 阅读次数:
字数统计: 2,449 字 | 阅读时长 ≈ 12 分钟
我们知道,迭代器的特点是:惰性求值(Lazy evaluation),即只有当迭代至某个值时,它才会被计算,这个特点使得迭代器特别适合于遍历大文件或无限集合等,因为我们不用一次性将它们存储在内存中。 Python 内置的 itertools 模块包含了一系列用来产生不同类型迭代器的函数或类,这些函数的返回都是一个迭代器,我们可以通过 for 循环来遍历取值,也可以使用 next() 来取值。 it ...
阅读全文 »

SQLAlchemy中指定想要使用的索引

发表于 2019-05-21 | 分类于 SQLAlchemy | | 阅读次数:
字数统计: 367 字 | 阅读时长 ≈ 2 分钟
我们知道在MySQL中可以使用FORCE INDEX(index_name,...)来强制使用索引,那在SQLAlchemy如何指定呢? 经过多方查找和实践,我发现了一个叫with_hint的函数。 我们看下源码 12345678910111213141516171819202122232425262728293031323334353637def with_hint(self, selectab ...
阅读全文 »

SQLAlchemy中实现更新不存在即插入

发表于 2019-05-16 | 分类于 SQLAlchemy | | 阅读次数:
字数统计: 839 字 | 阅读时长 ≈ 4 分钟
项目高并发的时候很容易出现数据库插入相同的数据,虽然可以使用唯一索引避免插入相同数据,但是不断的程序报错也是我们要避免的。 MySQL中的插入更新使用 insert ... on duplicate key update .. 语法可以避免上述情况,举个例子 1234567drop table if exists `test`;create table `test` ( `id` int(11) ...
阅读全文 »

最漂亮iTerm2+oh-my-zsh配色

发表于 2019-05-11 | 分类于 其他 | | 阅读次数:
字数统计: 202 字 | 阅读时长 ≈ 1 分钟
参考这篇文章 最漂亮( iTerm2+oh-my-zsh配色) 配置 不过还是有一点不是我想要的 比如说 配置完之后可能会显示用户名和主机名,这些非常占据长度。 可以参看这篇文章自定义设置用户名和主机名的显示:oh-my-zsh终端用户名设置 还有一点是 现在是全路径显示 如果我们想只显示当前目录可以参考这篇文章设置:Zsh 里修改前缀 具体设置是: 要到agnoster配色主题的配置文件中改一个 ...
阅读全文 »

Python的堆模块heapq

发表于 2019-03-26 | 分类于 Python | | 阅读次数:
字数统计: 1,073 字 | 阅读时长 ≈ 5 分钟
Python的heapq模块实现了一个适用于Python列表的最小堆算法。 堆是一种树形数据结构,其中子节点与父节点之间是一种有序关系。最大堆中父节点大于或等于两个子节点,最小堆父节点小于或等于两个子节点。heapq模块实现的是一个最小堆。 创建堆 创建堆有两种方式 方法一:使用heappush 12345678In [18]: import heapqIn [19]: data = [1,3,4 ...
阅读全文 »

使用DockerSwarm管理容器

发表于 2019-01-14 | 分类于 Docker | | 阅读次数:
字数统计: 2,579 字 | 阅读时长 ≈ 13 分钟
我们在之前的学习都是操作一台主机上的一个或者多个容器,但是在实际场景中可能一个服务需要多台主机,多个容器,那这时候怎么办呢? 我们可以通过一套容器编排系统区解决。 Swarm Mode 并不是唯一可以做容器编排的工具 Swarm是内置在Docker中的 上面是Docker Swarm的结构设计,Docker Swarm是一种集群的架构,里面有各种节点,节点的角色分为Manager和Wor ...
阅读全文 »

一份从A-Z的Python技巧

发表于 2019-01-03 | 分类于 Python | | 阅读次数:
字数统计: 2,996 字 | 阅读时长 ≈ 14 分钟
最近在浏览学(huang)习(tu)文章的时候看到一篇不错的Python技巧文章,将其翻译成中文来记录学习一下。 原文链接地址:An A-Z of useful Python tricks all or any 在进行可迭代对象逻辑判断的时候,使用all或者any将很简单: 123456789101112131415In [1]: x = [True, True, False]In [2]: if ...
阅读全文 »

Python优雅地dumps非标准类型

发表于 2018-12-26 | 分类于 Python | | 阅读次数:
字数统计: 743 字 | 阅读时长 ≈ 4 分钟
文章标题的参考文章: Python 优雅地 dumps 非标准类型 今天主要学习的是里面的知识点singledispatch。 在Java语言中我们知道是有方法重载的(同一个方法名,参数不同或顺序不同导致),但是在Python中是没有方法重载这么一说的。不过在Python中我们可以使用singledispatch装饰器将一个普通函数变为泛函数(generic function)。 如果我们想针对 ...
阅读全文 »
1…567…19
Coderyang

Coderyang

Coderyang

184 日志
23 分类
23 标签
RSS
GitHub 简书
0%
© 2021 Coderyang
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4