有些时候你的项目中难免需要一些全局唯一的对象,这些对象大多是一些工具性的东西,在Python中实现单例模式并不是什么难事。以下总结几种方法:
使用类装饰器
使用装饰器实现单例类的时候,类本身并不知道自己是单例的,所以写代码的人可以不care这个,只要正常写自己的类的实现就可以,类的单例有装饰器保证。
def singleton(cls):
instances = {}
def _wrapper(*args, **kwargs):
if cls not in instances:
instances[cls] = cls(*args, **kwargs)
r
继续阅读 »
Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间.
继续阅读 »
Python的"类型-对象"体系实现的简洁而优雅,"元类"-"类"-"实例对象"自上而下,层次分明。
以下是关键的几个点:
1.一切(函数,类等)皆对象(object)
2.变量名只是对象的引用
3.object类是所有类(对象)的最终父类,但object不是任何类的子类,这是对1的解释
4.type既是object类的实例,也是object类的子类
5.object作为一个类对象,她的类也是type
6.object和type是鸡和蛋的关系
7.type很重要,在整个体系中,真正干活的就是type
8.元类就是类(一切皆对象)的类
9.1)type负责生成'类'(对象),是最终元类(调用:type(class_n
继续阅读 »
这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获。
1 排列组合
示例程序:
```python
!/usr/bin/env python
coding=utf8
import itertools
继续阅读 »
本文转载自极客范,原文链接:http://www.geekfan.net/7862/,转载请注明。
Python中包含了许多内建的语言特性,它们使得代码简洁且易于理解。这些特性包括列表/集合/字典推导式,属性(property)、以及装饰器(decorator)。对于大部分特性来说,这些“中级”的语言特性有着完善的文档,并且易于学习。
但是这里有个例外,那就是描述符。至少对于我来说,描述符是Python语言核心中困扰我时间最长的一个特性。这里有几点原因如下:
有关描述符的官方文档相当难懂,而且没有包含优秀的示例告诉你为什么需要编写描述符(我得为Raymond Hettinger辩护一下,他写的其他主题的Python文章和视频对
继续阅读 »
这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获。
1 正确的函数返回
不推荐方式
```python
def divide(a, b):
if b != 0:
return a * 1.0 / b
继续阅读 »
这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获。
1 通过索引删除列表元素
```python
my_list = range(0, 10)
print my_list
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
del my_list[9]
print my_list
[0, 1, 2, 3, 4, 5, 6, 7, 8]
del my_list[5:8]
print my_list
[0, 1, 2, 3, 4, 8]
```
继续阅读 »
函数(Functions)是指可重复使用的程序片段。它是有名字的代码块,接受输入、提供输出并可存储在文件中供以后使用。你通过这一特殊的名字在你的程序任何地方来运行代码块,并可重复任何次数。
more
定义函数
继续阅读 »
这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获。
1 如何打印更易读的类
不推荐方式
```python
class Point(object):
def init(self, x, y):
self.x = x
self.y = y
继续阅读 »
运算符是进行某些操作,并且可以用诸如 + 等符号或特殊关键词加以表达的功能。运算符需要一些数据来进行操作,这些数据就被称作操作数。表达式可以拆分成运算符与操作数。一个表达式的简单例子便是 2+3,其中 2 和 3 被称为操作数,"+" 称为运算符。
继续阅读 »