转到正文

博客水木

一个学习总结与工作经验分享博客。

存档

分类: Python

Python的GC模块主要运用了“引用计数”(reference counting)来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用的问题。通过“分代回收”(generation collection)以空间换取时间来进一步提高垃圾回收的效率。 一、引用计数 在Python中,大多数对象的生...继续阅读

...

装饰模式有很多经典的使用场景,例如插入日志、性能测试、事务处理等等,有了装饰器,就可以提取大量函数中与本身功能无关的类似代码,从而达到代码重用的目的。下面就一步步看看Python中的装饰器。 一个简单的需求 现在有一个简单的函数”myfunc”,想通过代码得到这个函数的大概执行时间。 我们可以直接把计时逻辑方法...继续阅读

...

本文展示一些高级的Python设计结构和它们的使用方法。在日常工作中,你可以根据需要选择合适的数据结构,例如对快速查找性的要求、对数据一致性的要求或是对索引的要求等,同时也可以将各种数据结构合适地结合在一起,从而生成具有逻辑性并易于理解的数据模型。Python的数据结构从句法上来看非常直观,并且提供了大量的可...继续阅读

...

数据结构   数据结构的概念很好理解,就是用来将数据组织在一起的结构。换句话说,数据结构是用来存储一系列关联数据的东西。在Python中有四种内建的数据结构,分别是List、Tuple、Dictionary以及Set。大部分的应用程序不需要其他类型的数据结构,但若是真需要也有很多高级数据结构可供选择,例如Collection、Array、H...继续阅读

...

对于那些新手开发者,总有一些使用反模式的理由,我已经尝试在可能的地方给出了这些理由。但通常这些反模式会造成代码缺乏可读性、更容易出bug且不符合Python的代码风格。如果你想要寻找更多的相关介绍资料,我极力推荐The Python Tutorial或Dive into Python。迭代 range的使用 Python编程新手...继续阅读

...

什么是贝叶斯理论? 贝叶斯理论就是允许我们根据抽样分布(或称似然度)和先验分布推导出后验分布。 什么是抽样分布? 抽样分布指的是在给定参数θ的条件下,X发生的概率。记做p(X|θ). 举例说明,我们记录了1000次抛硬币的数据。如果1表示硬币正面。可以用python这么表示: 输入 [2]: import numpy as np data_coi...继续阅读

...

前言 其实对于setup.py和setup.cfg的关注是从OpenStack的源码包中开始的,OpenStack每个组件的发布时都是一个tar.gz包,同样,我们直接从github上clone代码后也会发现两个文件的存在。当阅读Nova或Ceilometer(其他组件可能也会涉及)的代码时,发现setup.cfg中内容对于代码的理解有很大的影响。那么,到底setup.py和setup.cfg是...继续阅读

...

进程和线程究竟是什么东西?传统网络服务模型是如何工作的?协程和线程的关系和区别有哪些?IO过程在什么时间发生? 在刚刚结束的 PyCon2014 上海站,来自七牛云存储的 Python 高级工程师许智翔带来了关于 Python 的分享《Python中的进程、线程、协程、同步、异步、回调》。 一、上下文切换技术 简述 在进一步之前,让我...继续阅读

...

Ryan 在 Red Hat的Openstack Heat项目组工作,已经用Python写了许多大大小小的应用,包括web、编排计划、后端应用等大小应用。 Python是一种被广泛使用的强大语言,让我们深入这种语言,并且学习一些控制语句的技巧,标准库的窍门和一些常见的陷阱。 1 简介 Python(和它的各种库)非常庞大。它被用于系统自动化、web应用、大...继续阅读

...

这周完成了一个意料之外的工作,我把python的wtfroms, voluptuous,logging三个包的代码读了,还读得挺high的。之前我一直觉得读源代码是件痛苦的事情,不过不知怎么的不怕了,还挺享受的。所以我总结了一下读代码的心得,分享一下。 阅读代码有两点最重要: 1. 理解。阅读程序最重要的是理解程序,包括几个方面:1)理...继续阅读

...
建站服务