变量在使用之前未定义 由于python变量的动态性,变量在赋值时会自动定义。 与其它语言一样,全局变量在函数中可直接使用,不需特意声明。然而在函数中对一与全局变量同名的变量赋值时,默认创建的,却是一局部变量。这在某些情况上,会使python解析器都出现一些困扰。 a = 123 def function_test(): print a
[Read More...]-
Python中变量作用域特有的问题 – 全局变量
-
[转载] Javascript之构造函数
一.构造函数 如果函数或者方法的调用之前加上new关键字,他就构成了构造函数的调用., 构造函数的调用和普通函数,方法的调用在实参处理,调用上下文和返回值方面有不同 (1).实参处理不同 凡是没有形参的构造函数调用都可以省略圆括号 例子1-1: [javascript][/javascript] view plaincopy var o = new Object(); /等价于var o = new Object;
[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. 任务 通过操作和处理一个序列(或其他的可迭代对象)中的元素来创建一个新的列表。 2. 解决方案 thenewlist = [ x +
[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...]