Python
文章平均质量分 59
哈维先生
这个作者很懒,什么都没留下…
展开
-
Cheetah使用出错!You don't have the C version of NameMapper installed!
1.错误/usr/lib/python2.5/site-packages/Cheetah/Compiler.py:1532: UserWarning: You don't have the C version of NameMapper installed! I'm disabling Cheetah's useStackFrames option as it is painfully s原创 2014-07-30 16:06:02 · 6569 阅读 · 0 评论 -
python使用thrift访问hbase
thrift 是facebook开发并开源的一个二进制通讯中间件,通过thrift,我们可以充分利用各个语言的优势,编写高效的代码。原创 2014-03-05 15:42:02 · 200 阅读 · 0 评论 -
类与可调用的类实例
类和类的实例也是可调用对象。当一个类被调用时,就生成该类的一个实例。如果该类定义了一个__init__方法,则这个方法就用来初始化新建的实例。如果一个类定义有一个特殊的方法__call__(),那么该类的实例也可以被调用,假设x是一个可调用的类实例,x(args)调用就等同于调用x.__call__(args)。内建函数及内建方法可调用类型还有内建函数和内建方法。内建函原创 2014-03-03 08:45:06 · 428 阅读 · 0 评论 -
Python中的range和xrange的说明
这两个基本上都是在循环的时候用。range函数返回的是一个列表,而xrange返回的是其中的值。>>> rg = range(0,10)>>> type(rg)list>>> for i in rg: ....: print i ....: 0123456789>>> xrg = xrange(0,10)>>> type(xrg)原创 2014-03-02 14:00:43 · 1091 阅读 · 0 评论 -
Python自省
class A: def __init__(self): self.name = 'my name is a' def method(self): print "method print" a = A()hasattr函数简介hasattr(object,name)用来检查object中是否有n原创 2014-03-01 11:48:08 · 871 阅读 · 0 评论 -
Python中exec的使用
exec语句用来执行储存在字符串或者文件中的python语句。可以生成一个包含python代码的字符串,然后使用exec语句执行这些语句。>>>exec 'print "hello word"'hello worldexec语句的用法和eval_r(),execfile()是不一样的,exec是一个语句,而eval_r()和execfile()是内建函数。原创 2014-03-01 14:18:58 · 1603 阅读 · 0 评论 -
Python的静态方法和类方法
可以直接被类或者类的实例调用。1)静态方法无需传入self参数,类成员方法需传入代表本类的cls参数;2)从第1条,静态方法是无法访问实例变量的,而类成员方法也同样无法访问实例变量,但可以访问类变量;3)静态方法有点像函数工具库的作用,而类成员方法则更接近类似Java面向对象概念中的静态方法。class MyClass: val1 = 'apple' def原创 2014-03-01 15:41:51 · 901 阅读 · 0 评论 -
Python 在一个函数中通过传参数,调用其他函数
def getInfo(table_name): function_name = table_to_function原创 2014-02-18 11:08:42 · 2440 阅读 · 0 评论 -
Python中的cheetah模板
Cheetah简介Cheetah提供了一门简单语言,用来定义提供基本流控制和对象访问构造的模板。原创 2014-02-17 17:59:50 · 1370 阅读 · 0 评论 -
python中使用iteritems而不是items
dict的items函数返回的是键值对的元组的列表,而iteritems使用的是键值对的generator。>>> d = {'a':1,'b':2}>>> for i in d.items().... print i('a',1)('b',2)>>>for k,v in d.iteritems()... print k,v'a',1'b',2原创 2014-02-25 14:59:45 · 1543 阅读 · 0 评论 -
Python中import,reload和__import__ 的使用
__import__作用:同import语句同样的功能,但__import__是一个函数,并且只接收字符串作为参数。import语句就是调用这个函数进行导入工作的,import sys 的作用等同于sys = __import__('sys')e.g:__import__(module_name[, globals[, locals[, fromlist]]]) #可选参数默认原创 2014-02-27 16:22:47 · 279 阅读 · 0 评论 -
python中的setdefaultencoding函数使用
#!/usr/bin/env python #encoding: utf-8 import sys #引用sys模块进来,并不是进行sys的第一次加载 reload(sys) #重新加载sys sys.setdefaultencoding('utf8') ##调用setdefaultencoding函数可以正确的执行,可是下面的代码会出错#!/usr/bin原创 2014-02-27 16:19:23 · 2825 阅读 · 0 评论 -
python中json模块的使用
将python类型转换为json的类型的数据>>>import json>>>l = [[2,3,4],123,12.11,'aaa',(1,2,3),{'k1':1,'K2':(1,2,3),'k3':[1,2,3]}]>>>encodedjson = json.dumps(l)>>>print l[[2, 3, 4], 123, 12.11, 'aaa', (1, 2, 3原创 2014-03-05 15:58:28 · 296 阅读 · 0 评论 -
python线程池
线程池的概念是什么?在IBM文档库中这样的一段描写:“在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如何利用已有对象来服务就是一个需要解决的关键问题,其实这就是一些"原创 2014-03-05 17:00:55 · 129 阅读 · 0 评论 -
Python中list对象
list去重使用内置的set和list的sort函数。>>>L = [4,3,5,3,2,5]>>>temp = list(set(L))>>>print temp[2,3,4,5]>>>temp.sort(key = L.index)>>>print temp[4,3,5,2]使用遍历的方法>>>temp = []>>>for i in L:>>>原创 2014-02-20 11:43:06 · 1900 阅读 · 2 评论 -
Python内建函数str()和repr()
内建函数str()和repr() (representation,表达,表示)或反引号操作符(``)可以方便地以字符串的方式获取对象的内容、类型、数值属性等信息。str()函数得到的字符串可读性好(故被print调用),而repr()函数得到的字符串通常可以用来重新获得该对象,通常情况下 obj==eval(repr(obj)) 这个等式是成立的。这两个函数接受一个对象作为其参数,返回适当的字符串原创 2014-07-25 19:33:12 · 1059 阅读 · 0 评论 -
python函数-参数和返回值
传递参数参数是通过赋值来传递的。1、参数的传递是通过自动将对象赋值给本地变量名来实现的。函数参数在实际中只是python赋值的另一个实例而已。因为引用是以指针的形式实现的,所有的参数实际上都是通过指针进行传递的。作为参数被传递的对象从来不自动拷贝。2、在函数内部的参数名的赋值不会影响调用者。在函数运行时,在函数头部的参数名是一个新的、本地的变量名,这个变量名是在函数的本地作用域原创 2013-12-30 17:04:40 · 1264 阅读 · 0 评论 -
python中跨平台文件操作
众所周知,Windows下的路径分隔符为反斜杠 "\", 而UNIX-like系统下的路径分隔符为正斜杠 "/",这常导致代码跨平台移植时的问题。Python设计为一门跨平台的语言,当然可以轻松解决此问题。 首先,Python在不同平台下都可以正确识别以正斜杠为分隔符的路径。如果在程序中只用到程序中预置的路径字符串(比如说指定库的位置),而不涉及从系统获取文件路径,则只要将路径写为正斜原创 2014-01-02 10:22:39 · 1838 阅读 · 0 评论 -
Python的urllib2的使用
urllib.urlopen(url[, data[, proxies]]) :创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据。参数url表示远程数据的路径,一般是网址;参数data表示以post方式提交到url的数据(玩过web的人应该知道提交数据的两种方式:post与get。如果你不清楚,也不必太在意,一般情况下很少用到这个参数);参数proxies原创 2014-01-27 14:37:50 · 797 阅读 · 0 评论 -
Python内置的字符串处理函数整理
收集常用的Python 内置的各种字符串处理 函数的使用方法str='python String function'生成字符串变量str='python String function' 字符串长度获取:len(str)例:print '%s length=%d' % (str,len(str)) 字母处理全部大写:str.upper()全部小写:str.low原创 2014-04-16 19:38:49 · 608 阅读 · 0 评论 -
Python的with...as的用法
这个语法是用来代替传统的try...finally语法的。 with EXPRESSION [ as VARIABLE] WITH-BLOCK 基本思想是with所求值的对象必须有一个__enter__()方法,一个__exit__()方法。紧跟with后面的语句被求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被原创 2014-03-01 18:36:16 · 5540 阅读 · 0 评论 -
python用httplib模块发送get和post请求
在python中,模拟http客户端发送get和post请求,主要用httplib模块的功能。1、python发送GET请求我在本地建立一个测试环境,test.php的内容就是输出一句话:1echo 'Old friends and old wines are best.';python发送get请求代码:转载 2014-04-15 17:30:40 · 717 阅读 · 1 评论 -
Python中urllib.urlencode的时候出错:UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0
1.之前已经遇到类似问题,并且搞定过了:【已解决】Python字符串处理出现错误:UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe6 in position 0: ordinal not in range(128)结果此处又遇到这类问题。真是被python中的编码问题搞得无语了。2.看了下现象,貌似又是传入的转载 2014-04-16 15:55:33 · 1549 阅读 · 0 评论 -
Python解析json对象
更多的信息,可以参考python内部的json文档:python>>> help(json)或者官方文档:http://docs.python.org/library/json.html#module-json.下面给出一个使用python解析json的简单例子:#!/usr/bin/pythonimport json#Function:Analyze json scrip原创 2014-04-16 13:47:21 · 940 阅读 · 0 评论 -
Python中Struct二进制数据模块
Python的struct模块,用来从字符串创建和提取打包的二进制数据。pack(fmt, v1, v2, ...) 按照给定的格式(fmt),把数据封装成字符串(实际上是类似于c结构体的字节流)。unpack(fmt, string) 按照给定的格式(fmt)解析字节流string,返回解析出来的tuple。向一个二进制文件中写入数据。>>>F = open('dat原创 2014-01-03 10:05:31 · 1052 阅读 · 0 评论 -
python中sys.path使用
sys模块包含了与python解释器和它的环境有关的函数,这个你可以通过dir(sys)来查看他里面的方法和成员属性。最好把自己的模块路径加到当前模块扫描的路径里,使用sys.path.append('你的模块的名称')。原创 2014-02-27 18:14:44 · 1890 阅读 · 0 评论 -
python三重引号编写多行字符串块
Python有一种三重引号内的字符串常量格式,有时候称为块字符串。这是一种对编写多行文本数据来说很便捷的说法。这个形式以三重引号开始,并紧跟任意行数的文本,并且以开始时的同样的三重引号结尾。嵌套在这个字符串文本中的单引号和双引号都会显示正常。原创 2014-02-26 20:47:08 · 3144 阅读 · 0 评论 -
Python模块
简介模块,在Python可理解为对应于一个文件。在创建了一个脚本文件后,定义了某些函数和变量。你在其他需要这些功能的文件中,导入这模块,就可重用这些函数和变量。一般用module_name.fun_name和module_name.var_name进行使用。这样的语义用法使模块看起来很像类或者名字空间,可将module_name 理解为名字限定符。模块名就是文件名去掉.py后缀。i原创 2014-01-02 19:23:06 · 63 阅读 · 0 评论 -
Python中的map函数、zip函数、filter函数和reduce函数
Python实际上提供了一个内置的工具,map函数。这个函数的主要功能是对一个序列对象中的每一个元素应用被传入的函数,并且返回一个包含了所有函数调用结果的一个列表。>>>counters = [1,2,3]>>def inc(x) :return x+10...>>>list(map(inc, counters))[11,12,13]原创 2014-01-03 09:45:16 · 1286 阅读 · 0 评论 -
Python子进程 (subprocess包)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!谢谢Tolbkni Kao帮我纠正错误 这里的内容以Linux进程基础和Linux文本流为基础。subprocess包主要功能是执行外部的命令和程序。比如说,我需要使用wget下载文件。我在Python中调用wget程序。从这个意义上来说,subproce转载 2014-01-03 08:58:06 · 506 阅读 · 0 评论 -
Python的迭代器
for循环会使用迭代协议来遍历迭代的对象中的每一个项,for循环会在每次迭代中调用该对象的__next__方法,而且会捕捉StopIteration异常,从而决定何时停止循环。支持这种模式的任何对象,都可以用于for循环及其他迭代环境中。>>>L = [x +10 for x in L]列表解析写在一个方括号中,因为它们最终是构建一个新的列表的一种方式。它们的迭代在解释器内部是以C语言原创 2014-01-01 23:16:37 · 100 阅读 · 0 评论 -
python的一些常用问题
1.判断列表中是否存在某值,并将结果赋值给一个变量。>>>a = [1,2,3]>>>b = 1 in a>>>print aTrue>>>c = 4 in a>>>print cFalse2.可变参数当要使函数接受元祖或字典形式的参数的时候,有一种特殊的方法,它分别使用*和**前缀,这种方法在函数需要获取可变数量的参数的时候很有用。>>> def powe原创 2013-12-30 13:56:10 · 102 阅读 · 0 评论 -
Python异常处理
捕获异常服务器程序一般需要在内部错误发生时依然保持工作。如果不想要默认的异常行为,就需要把调用包装在try语句中,自行捕捉异常。使用try/except语句,捕捉由python或者用户引起的异常并恢复。当try代码块执行时触发异常,Python会自动跳至处理器。在真实的程序中,try语句不仅会捕获异常,也会从中恢复执行。>>>def catcher():...原创 2014-01-01 22:39:54 · 672 阅读 · 0 评论 -
Python重载问题
函数重载python 不提供函数重载。函数重载主要是为了解决两个问题。1、可变参数类型;2、可变参数个数。另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载,如果两个函数的功能其实不同,那么不应当使用重载,而应当使用一个名字不同的函数。那么对于情况1,函数功能相同,但是参数类型不同,python 如何处理?答原创 2014-01-02 15:38:20 · 3364 阅读 · 0 评论 -
Python动态类型简介
在python中,类型是在运行过程中自动决定的,而不是通过代码声明。这意味着没有必要事先声明变量。变量、对象和引用变量在赋值时才创建,它可以引用任何类型的对象,并且必须在引用之前赋值。>>> a=3Python将会执行三个不同的步骤去完成这个请求,这些步骤反应了Python语言中所有赋值的操作:(1)创建一个对象来代表值3;(2)创建一个变量a,如果它还没有创建的话原创 2013-12-03 11:31:11 · 1101 阅读 · 0 评论 -
Python中的匿名函数-lambda
简述除了def语句之外,Python还提供了一种生成函数对象的表达式形式。这个表达式创建了一个之后能够调用的函数,但是它返回了一个函数而不是将这个函数赋值给一个变量名称。lambda表达式lambda的一般形式是关键字lambda,之后是一个或者多个参数,紧跟的是一个冒号,之后是一个表达式:lambda argument1 argument2 ... :ex原创 2013-12-09 11:59:36 · 835 阅读 · 0 评论 -
Python对象
对象在计算机上,一个对象实际上就是一片被分配的内存空间,这些内存可能是连续的,也有可能是离散的,这都不重要,重要的是这片内存在更高的层次上可以作为一个整体来考虑,这个整体就是一个对象。实际上,PyObject是Python中不包含可变长度数据的对象的基石,而对于包含可变长度数据的对象,它的基石是PyVarObject。这两个结构体构成了python对象机制的核心基石,他们分别由PyOb原创 2013-11-21 10:03:39 · 132 阅读 · 0 评论 -
Python多态
多态是面向对象语言的一个基本特性,多态意味着变量并不知道引用的对象是什么,根据引用对象的不同表现不同的行为方式。2013-10-21 10:58:58 · 68 阅读 · 0 评论 -
Python中字典对象的实现
散列表概述关联容器的设计总会极大地关注搜索键的效率,因为通常我们使用关联容器,都是希望根据我们手中已有的某个元素来快速获得与之有某种联系的另一元素。一般而言,关联容器的实现都会基于设计良好的数据结构。比如C++的STL中的map就是一种关联容器,map的实现基于RB-tree(红黑树)。RB-tree是一种平衡二元树,能够提供良好的搜索效率,理论上,其搜索的复杂度为O(logN)。转载 2014-01-06 14:07:24 · 1008 阅读 · 0 评论 -
Python的单例模型
class Singleton(object): def __init__(self): pass def __new__(cls, *args, **kw): if not hasattr(cls, '_instance'): cls._instance = super(Singleton, cls).__原创 2014-01-22 11:30:59 · 252 阅读 · 0 评论