摘要:Python Descriptor1, Python Descriptor是这样一个对象它按照descriptor协议, 有这样的属性之一def __get__(self, obj, type=None) # 会返回一个valuedef __set__(self, obj, value) # 返回Nonedef __delete__(self, obj) # 返回None这样的对象就是一个descriptor2, descriptor的特性假若有一个对象t, 我们去引用它的一个属性at.a但是发现a是一个descriptor那么不会返回a, 而是会去调用a相应的__get__,__s...
阅读全文
摘要:Python有内置的字符串类型, 内置的字符串是序列(Sequence), 是不可变的序列, 所以不可变序列通用的方法对其都适用.对Python2, 内置的字符串类型有str和unicode,Python2'abc' 是str, u'中国123' 是unicode# Python2.7>>> typ...
阅读全文
摘要:了解装饰器,要先了解闭包。1,闭包(closure)闭包是Python所支持的一种特性,它让在非global scope定义的函数可以引用其外围空间中的变量,这些外围空间中被引用的变量叫做这个函数的环境变量。环境变量和这个非全局函数一起构成了闭包。 1 def outer(x): 2 y = [1,2,3] 3 def inner(): 4 print x 5 print y 6 return inner 7 8 x = 5 #这个x没有被引用 9 f = outer(2)10 f()11 print f.__closure__ ...
阅读全文
摘要:我们下面的探讨基于Python3,我实际测试使用的是Python3.2,Python3与Python2在类函数的类型上做了改变1,类定义语法Python类定义以关键字class开头,一个类定义例子1 class MyClass:2 """this is an example"""3 ...
阅读全文
摘要:这是一篇我翻译的文章,确实觉得原文写的非常好,简洁清晰原文链接:http://effbot.org/zone/python-objects.htm--------------------------------------简介先清空你的大脑,丢掉以前的概念对象(objects)所有的Python对象都有如下特性:一个独一无二的id(a unique id),这是一个整数,id(x)的返回值一个类型(a type),type(x)的返回值一些内容(some content)你不能改变对象的id你也不能改变对象的type一些对象允许你改变他们的内容(不改变对象的id和type)一些对象不允许其内容
阅读全文
摘要:在Python中,对象是独立的,不同作用域中的不同名字都可以被绑定在同一个对象上,当然对这个对象的修改会影响所有的引用。赋值操作就是名字和对象的绑定或重绑定。这和C++中的引用是一样的。1,基础概念1.1 命名空间(namespace) Anamespaceis a mapping from names to objects命名空间是名字和对象的映射。也就是可以把一个namespace理解为一个字典,实际上很多当前的Python实现namespace就是用的字典。各个命名空间是独立的,没有任何关系的,所以一个命名空间中不能有重名,但不同的命名空间是可以重名而没有任何影响。那么哪些可以是一个na
阅读全文
摘要:程序会有输入和输出,输入可以从标准输入或是从一个文件读入数据,程序的输出可以以一种友好可读的方式(human-readable)打印出来,或是写进一个文件,而标准输入和标准输出(键盘和显示器)在程序的角度也是文件,所以程序的输入输出就是文件读写。1,内置函数print()Python2.7中是有pr...
阅读全文
摘要:这里我们看看Python中函数定义的语法,函数的局部变量,函数的参数,Python中函数的形参可以有默认值,参数的传递是赋值操作,在函数调用时,可以对实参进行打包和解包1,函数定义关键字def引出函数定义,后面跟着函数名以及用括号括起来的一系列参数,然后从下一行开始函数体(function body),并且要缩进。生成一个Fibnacci数列的序列,最大不超过某个数的函数1 def fib(n):2 '''get a list of fibnacci series to n'''3 a, b = 0, 14 result = []5 while
阅读全文
摘要:Python用于流程控制的语句包括if,for,while,这些都是从C语言借鉴过来的,然后我们会提到pass语句。 1,if if的语法很简答,我们举一个例子就好,注意关键字if, elif, else,一个if复合语句中可以有多个elif。 2,for Python的for语句和C语言中的for
阅读全文
摘要:字典dict,是Python唯一的标准mapping类型,也是内置在Python解释器中的。mapping object把一个可哈希的值(hashable value)映射到一个任意的object上。什么是可哈希的一个object是可哈希的(hashable), 是指这个object在其生存期内有一...
阅读全文
摘要:Sequence是Python的一种内置类型(built-in type),内置类型就是构建在Python Interpreter里面的类型,三种基本的Sequence Type是list(表),tuple(定值表,或翻译为元组),range(范围)。可以看作是Python Interpreter定
阅读全文
摘要:一个Python Module(模块),是一个文件,包含了Python对象定义和Python语句(definitions and statements)。文件名就是模块名加上后缀.py,在模块内部,模块名存储在全局变量__name__中,是一个string,可以直接在module中通过__name_
阅读全文
摘要:这里用Python实现了一个echo程序的服务端和客户端,客户端发出的东西,服务端打上一个时间戳后给客户端发回去。主要是实践一下Python的socket编程Python的socket相关的比较低层的接口都在标准库中的socket module来实现的,这个module中定义的属性包括一些常量,如下面34行的AF_INET,SOCK_STREAM,全局函数ntohl(byte order translation),另外还有一个类socket,这个Socket Object里面包装了像listen, accept这些函数。socket module里面的全局函数socket就返回这样一个Sock
阅读全文
摘要:关于IOS emoji表情的编码问题是这样的,IOS4.0以前emoji采用的是SoftBank的那套编码,叫做SB_Unicode, 而且IOS5时,emoji被放进了Unicode6.0, 此后IOS采用的是Unicode编码,为了在新老IOS应用程序(如微信,我们在做的人人的私信)之间传递emoji表情,就必须在后台做一个编码的转换,苹果系统自带的iMessage当然自己在后台或是前台完成了这个转换昨天折腾了一天,要完成这么一个工作,从gibhub这上面http://punchdrunker.github.com/iOSEmoji/table_html/index.html把最新的编码给
阅读全文