类的后面的__init__函数用来给类的创造属性,同时能够通过参数给类的实例赋值,但是__init__()里面的第一个函数,往往是self,被python解释器传入引用参数,它不用来被传入参数
2016-05-11
sorted(iterable,cmp,key,reverse) iterable 可迭代的,即可以使用next功能的一串字符 cmp 比较函数 key?关键字? reverse 可交换,转换
2016-05-11
L1 print出来是内存地址,L2 print 出来也是内存地址。可见这道习题中,类的具体实例的列表是内存地址。通过sorted排序的函数是3个实例的内存地址,只有通过L[0]引用并且执行.name的时候才会出现具体实例的(name)
2016-05-11
def cmp_ignore_case(s1, s2):
if s1.lower()<s2.lower():
return -1
if s1.lower()>s2.lower():
return 1
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
if s1.lower()<s2.lower():
return -1
if s1.lower()>s2.lower():
return 1
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
2016-05-10
import math
def is_sqr(x):
return math.sqrt(x)%1.0==0
print filter(is_sqr, range(1, 101))
def is_sqr(x):
return math.sqrt(x)%1.0==0
print filter(is_sqr, range(1, 101))
2016-05-10
isinstance(object, classinfo)
如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例, 返回True。如果object不是一个给定类型的的对象, 则返回结果总是False。
如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例, 返回True。如果object不是一个给定类型的的对象, 则返回结果总是False。
2016-05-10
JSON(JavaScript Object Notation):一种轻量级数据交换格式,相对于XML而言更简单,也易于阅读和编写,机器也方便解析和生成,Json是Python的Json模块序列化与反序列化的过程分别是 encoding和 decoding
encoding:把一个Python对象编码转换成Json字符串
decoding:把Json格式字符串解码转换成Python对象
对于简单数据类型(string、unicode、int、float、list、tuple、dict),可以直接处理。
json.dumps方法对简单数据类型encoding:
encoding:把一个Python对象编码转换成Json字符串
decoding:把Json格式字符串解码转换成Python对象
对于简单数据类型(string、unicode、int、float、list、tuple、dict),可以直接处理。
json.dumps方法对简单数据类型encoding:
2016-05-10
学过js闭包的,对python闭包理解起来就不会很困难。 创建一个新的函数的目的是形成新的作用域,新的作用域内的变量是独立的。如果不建立新作用域,由于闭包的,他们会共享变量 i,而变量在最后一次循环中为3
2016-05-10
cmp是排序函数,需要调入。lambda是匿名函数。cmp排序后返回原字符串,大小写不做变动。
当引用匿名参数lambda时,直接用‘=’赋值即可,llambda前面不需要加括号。
当引用匿名参数lambda时,直接用‘=’赋值即可,llambda前面不需要加括号。
2016-05-10
带参数的装饰器,比起不带参数的装饰器,需要在下面多加一层新的函数,用来传递增加的参数。另外,r = f.(*args,**kw),这时函数直接进入被装饰器包裹的参数,从而引进参数,进行一系列的运算。运行完所有后,再进行下一步t2的步骤。
2016-05-09
1,一个函数的结尾一定要有返回值:return(或者其他返回值)
2,装饰器实际上还是闭包的内容,只不过是装饰下面的函数,然后在返回原来的闭包来执行,不调用参数就不执行
3,r = f(*args,**kw),而不是r = fn(*args,**kw),因为r要从参数的外部调用参数,如果从函数fn(内部函数)调用参数,将会返回错误
3,实在不理解就多写几遍
2,装饰器实际上还是闭包的内容,只不过是装饰下面的函数,然后在返回原来的闭包来执行,不调用参数就不执行
3,r = f(*args,**kw),而不是r = fn(*args,**kw),因为r要从参数的外部调用参数,如果从函数fn(内部函数)调用参数,将会返回错误
3,实在不理解就多写几遍
2016-05-09