Python
biorelive
这个作者很懒,什么都没留下…
展开
-
Python标准模块logging
http://crazier9527.iteye.com/blog/290018 Python的标准logging模块http://blog.endlesscode.com/2010/06/03/python-logging-module/ Python的logging模块http://docs.python.org/library/logging.html 官方文档转载 2015-05-27 16:40:36 · 316 阅读 · 0 评论 -
python的enumerate()
for index,value in enumerate(list): print index,valuefor i in range(0,len(list)): print i,list[i] 上面两段等价,但enumerate()返回迭代器,所以效率高sorted()和zip()都返回listreversed()、enumerate()返回原创 2015-08-05 11:54:09 · 392 阅读 · 0 评论 -
python的with是如何工作的
class Sample: def __enter__(self): print "In __enter__()" return "Foo" def __exit__(self, type,value, trace): print "In __exit__()"def get_sample(): return Sampl原创 2015-08-05 12:05:07 · 488 阅读 · 0 评论 -
python的zip()
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表x = [1, 2, 3]y = [4, 5, 6]z = [7, 8, 9]xyz = zip(x, y, z)print xyz运行的结果是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]从这个结果可以看出zip函数的基本运作方式。x = [1, 2, 3]y = [4, 5,转载 2015-08-05 11:46:12 · 298 阅读 · 0 评论 -
php与python局部变量区别
$name = 'php';function foo1{ echo $name; }会发出警告,说$name不存在language = 'python'def foo2(): print(language )可以正常输出原创 2015-08-02 22:40:23 · 254 阅读 · 0 评论 -
python偏函数
from functools import partial def mod( n, m ): return n % m mod_by_100 = partial( mod, 100 ) print mod( 100, 7 ) # 2print mod_by_100( 7 ) # 2偏函数就是函数有好几个参数,固定其中的一个或多个,然后再起一个名,调用的时候就固定了原创 2015-08-06 09:40:05 · 363 阅读 · 0 评论 -
python中类方法和静态方法
这两种方法使用上没有任何区别,都可以被类和类实例访问,唯一的区别是类方法里面有个cls,可以知道当前调用他的类是什么,下面一个别人举的不太恰当的例子以便理解class Color(object): _color = (0, 0, 0); @classmethod def value(cls): if cls.__name__== 'Red':原创 2015-08-05 15:21:09 · 298 阅读 · 0 评论 -
Python装饰器
# -*- coding:gbk -*-'''示例3: 使用语法糖@来装饰函数,相当于“myfunc = deco(myfunc)”但发现新函数只在第一次被调用,且原函数多调用了一次''' def deco(func): print("before myfunc() called.") func() print(" after myfunc() called.")转载 2015-08-05 18:04:30 · 469 阅读 · 0 评论 -
python的@property
class Student(object): @property def score(self): return self._score @score.setter def score(self, value): if not isinstance(value, int): raise ValueError原创 2015-08-06 15:10:15 · 326 阅读 · 0 评论 -
python的__slots__
动态语言可以动态添加属性和方法,__slots__可以限制这种行为class Student(object): __slots__ = ('name', 'age') # 用tuple定义允许绑定的属性名称使用__slots__要注意,__slots__定义的属性仅对当前类起作用,对继承的子类是不起作用的原创 2015-08-06 15:03:09 · 291 阅读 · 0 评论 -
python对象拷贝
l1 = [[1, 2], 3]l2 = l1[:]l2.append(4)# l1 = [[1, 2], 3], l2 = [[1, 2], 3, 4]l2[0].append(5)# l1 = [[1, 2, 5], 3], l2 = [[1, 2, 5], 3, 4]l1 = [[1, 2], 3]l2 = copy.copy(l1)l3 = copy.deepcopy(l原创 2015-08-03 22:11:46 · 277 阅读 · 0 评论 -
PHP检测链接是否是SSL连接 ,也就是判断HTTPS
/** * 检测链接是否是SSL连接 * @return bool */function is_SSL(){ if (!isset($_SERVER['HTTPS'])) return FALSE; if ($_SERVER['HTTPS'] === 1){ //Apache return TRUE; } else if ($_SERVER['HTTPS'] === 'on转载 2015-08-05 20:41:06 · 725 阅读 · 0 评论 -
python中__new__ 的作用
class PositiveInteger(int): def __init__(self, value): super(PositiveInteger, self).__init__(self, abs(value)) i = PositiveInteger(-3)print i 结果仍然是-3class PositiveInteger(int):转载 2015-08-06 16:00:09 · 889 阅读 · 0 评论 -
Python的私有化
双下划线如果不加下划线,子类的xxx变量就会覆盖父类的xxx变量,加上__就不会,因为自动混淆成了_类型__xxx,所以也访问不到原创 2015-08-06 15:44:49 · 521 阅读 · 0 评论 -
python中**dict
是解包的意思dic = {'a':1,'b':2}print '{a},{b}'.format(**dic)结果是1,2原创 2015-08-06 15:55:10 · 907 阅读 · 0 评论 -
python字典排序
dic = {'a':5 , 'b':2 , 'c': 4}sorted(dic.iteritems(),key=lambda x:x[0])dic.iteritems()返回的是字典的键值对的list,形如[('a', 5), ('b', 2), ('c', 4)]lis = [{'Big':3, 'small':2},{'Big':3, 'small':4},{'Big':2原创 2015-08-05 11:38:47 · 314 阅读 · 0 评论 -
python中str()与repr()的区别
str()一般是将数值转成字符串。 str()的输出对用户比较友好,str()之后的字符串不保证可以用eval()还原repr()是将一个对象转成字符串显示,只做显示用,repr()输出对 Python比较友好,repr()之后的字符串保证可以用eval()还原原创 2015-08-05 11:26:13 · 357 阅读 · 0 评论 -
python垃圾回收
有 __del__() 函数的对象间的循环引用会导致内存泄漏,对没有 __del__() 函数的 Python 对象间的循环引用,是可以被自动垃圾回收掉的原创 2015-08-11 09:41:54 · 388 阅读 · 0 评论 -
python常用函数
1.常用内置函数:(不用import就可以直接使用) help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 repr(obj) 得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝 eval_r(str) 表示合法的python表达式,返回这个表达式 dir(obj) 查转载 2015-08-02 23:09:20 · 231 阅读 · 0 评论 -
理解__getattr__和__getattribute
object.__getattribute__(self, name)无条件被调用object.__getattr__(self, name)没有相应属性的时候被调用原创 2015-08-03 15:01:20 · 312 阅读 · 0 评论 -
python正则表达式函数match()和search()的区别
match()函数只检测RE是不是在string的开始位置匹配, search()会扫描整个string查找匹配原创 2015-08-03 15:02:27 · 424 阅读 · 0 评论 -
python中try except处理程序异常的三种常用方法
方法一:捕获所有异常try: a=b b=c except Exception,e: print Exception,":",e方法二:采用traceback模块查看异常import tracebacktry: a=b b=c except: f=open("c:log.txt",'a')原创 2015-08-03 15:06:29 · 568 阅读 · 0 评论 -
理解python的slice
list的切片,内部是调用__getitem__,__setitem__,__delitem__和slice函数。而slice函数又是和range()函数相关的。给切片传递的键是一个特殊的slice对象。该对象拥有可描述所请求切片方位的属性,例如:a = [ 1, 2, 3, 4, 5, 6 ]x = a [ 1 : 5 ] # x = a.__getitem__( slice ( 1原创 2015-08-03 12:51:11 · 313 阅读 · 0 评论 -
递归删除目录和文件
方法1:import osfor root, dirs, files in os.walk(top, topdown=False): for name in files: os.remove(os.path.join(root, name)) for name in dirs: os.rmdir(os.path.join(root, name)原创 2015-08-02 22:28:22 · 319 阅读 · 0 评论 -
用装饰器打log
#! /usr/bin/env python# coding=utf-8 from time import timedef logged(when): def log(f,*args,**kargs): print("called: function:%s,args:%r,kargs:%r"%(f,args,kargs)) def pre_logged(f原创 2015-08-04 07:11:06 · 723 阅读 · 0 评论 -
list排序
对第二个关键字排序:L = [('b',6),('a',1),('c',3),('d',4)]L.sort(key=lambda x:x[1])先对第二个关键字再对第一个关键字排序:L = [('d',2),('a',4),('b',3),('c',2)]L.sort(key=lambda x:(x[1],x[0]))原创 2015-08-03 22:00:27 · 267 阅读 · 0 评论 -
理解python函数传参机制
如果是可变类型,就是传引用,函数内部可以修改外部的东西,如果是不可变类型,就是值传递,把不可变类型复制一份,不会对函数外部进行修改num=10string='test'tupleset=(1,2,3)listset=[9,8,7]def change(num,string,tupleset,listset): num+=1 string+=' into new word原创 2015-08-03 21:12:19 · 314 阅读 · 0 评论 -
python数据类型判断type与isinstance的区别
type()不会认为子类是一种父类类型,isinstance()会认为子类是一种父类类型class Foo(object): pass class Bar(Foo): pass print type(Foo()) == Fooprint type(Bar()) == Fooprint isinstance(Bar(),Foo)输出TrueFalseT原创 2015-08-03 21:45:39 · 366 阅读 · 0 评论 -
Python闭包
如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包# coding=utf-8def plus(number): def plus_in(number_in): print str(number_in) + "\r\n" return number+number_in return plus_i原创 2015-08-04 07:04:13 · 250 阅读 · 0 评论 -
python类实例访问规则
Python是一门动态语言,任何实体都可以动态地添加或删除属性。一个类定义了一个作用域,类实例也引入了一个作用域,这与相应类定义的作用域不同,在类实例中查找属性的时候,首先在实例自己的作用域中查找,如果没有找到,则再在类定义的作用域中查找在对类实例属性进行赋值的时候,实际上会在类实例定义的作用域中添加一个属性(不存在的话),并不会影响到相应类中定义的同名属性class A: cls_i原创 2015-08-04 17:16:53 · 246 阅读 · 0 评论 -
python中range和xrnage的区别
两者都用在for循环中,range返回的是list。xrange不会返回list,而是每次调用返回一个值,我估计是生成器,所以对于规模比较大的循环xrange效率高原创 2015-08-05 11:17:06 · 617 阅读 · 0 评论 -
python中的globals()、locals()、dir()、vars()、__dict__
vars()与__dict__等价,不加参数的话返回当前作用域的属性及方法键值对,加参数的话返回的是参数对象所在作用域的属性及方法键值对dir()不加参数返回当前作用域内所有属性及方法的名字,加参数返回参数对象所在作用域的名字locals()和dir()一样,只是返回的是字典原创 2015-08-06 18:25:34 · 2176 阅读 · 0 评论