• Python中变量作用域特有的问题 – 全局变量

    变量在使用之前未定义 由于python变量的动态性,变量在赋值时会自动定义。 与其它语言一样,全局变量在函数中可直接使用,不需特意声明。然而在函数中对一与全局变量同名的变量赋值时,默认创建的,却是一局部变量。这在某些情况上,会使python解析器都出现一些困扰。 a = 123 def function_test(): print a

    [Read More...]
  • [译]Python中的Types和Objects

    1. 关于本篇文章 解释了Python中的新风格objects: <type ‘type’>和<type ‘object’>是什么。 用户自定义的类和实例之间、用户自定义的类和实例与内建类型之间是如何关联的。 元类(metaclasses)是什么。 新风格是指Python 2.2到Python

    [Read More...]
  • [转载] 深刻理解Python中的元类(metaclass)

    原文 在阅读本文之前,可以先看下我的另一篇博文《Python中的Types和Objects》,这样对深入理解本文有帮助。 译注:这是一篇在Stack overflow上很热的帖子。提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解。他知道这肯定和自省有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理解,以及在什么情况下需要进行元编程。于是e-satis同学给出了神一般的回复,该回复获得了985点的赞同点数,更有人评论说这段回复应该加入到Python的官方文档中去。而e-satis同学本人在Stack Overflow中的声望积分也高达64271分。以下就是这篇精彩的回复(提示:非常长)。 类也是对象 在理解元类之前,你需要先掌握Python中的类。Python中类的概念借鉴于Smalltalk,这显得有些奇特。在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立: 1 2

    [Read More...]
  • [Python Cookbook] 在无须共享引用的条件下创建列表的列表

    1. 任务 你想创建一个多维度的列表,且同时避免隐式的引用共享。 2. 解决方案 使用列表推导。举个例子,创建一个5*10的全为0的阵列: multilist = [ [

    [Read More...]
  • [Python Cookbook] 对象拷贝

    1. 前言 当给一个对象赋值(或者将其作为参数传递,或者作为结果返回时)时,Python(像Java一样)使用了一个指向源对象的引用,并不是真正的拷贝。其他一些语言则在每次赋值是都进行拷贝操作。Python从来不为赋值操作进行“隐式”的拷贝:要得到一个拷贝,必须明确地要求,需要的是拷贝。 2. 浅拷贝与深拷贝 浅拷贝: import copy new_list =

    [Read More...]
  • Python中的单例模式

    1.使用decorator import sys import ConfigParser def singleton(cls): instances = {}

    [Read More...]
  • 利用Python获取系统的进程信息

    目前我只探索了两种方法,一种是利用psutil(一个Python Package),另一种只针对Windows系统,利用它自带的tasklist命令。 一. 利用Psutil获取系统的Running Process信息 注意我把Running特意用红色标出,这是提醒大家利用psutil只能获取当前系统正在运行的进程。如果是一个程序卡死了(Not Responding),则psutil无法获取到它的信息,我猜测此时这个进程是出于挂起的状态。 Psutil的Github首页上有简单的使用文档:https://github.com/giampaolo/psutil  文档:http://pythonhosted.org/psutil/  

    [Read More...]
  • UnicodeDecodeError : ‘ascii’ codec can’t decode byte 0xe0 in position 0: ordinal not in range(128)

    在安装某个Python的Package(BeautifulSoup)的时候出现这个问题。 解决方案一: 将Python安装路径中的Lib文件夹中的mimetypes.py中read_windows_registry()的四条语句注释掉: def read_windows_registry(self, strict=True): …… def enum_types(mimedb): ……

    [Read More...]