-
要定义关键字参数,使用 **kw; 除了可以直接使用self.name = 'xxx'设置一个属性外,还可以通过 setattr(self, 'name', 'xxx') 设置属性。 还有一个for循环 for k,v in kw.iteritems():查看全部
-
sorted 的写法是 一个list ,一个方法 cmp的方法经常用到查看全部
-
问题的产生是因为函数只在执行时才去获取外层参数i,若函数定义时可以获取到i,问题便可解决。而默认参数正好可以完成定义时获取i值且运行函数时无需参数输入的功能,所以在函数f()定义中改为f(m = i),函数f返回值改为m*m即可查看全部
-
def count(): fs = [] for i in range(1, 4): def f(m = i): return m * m fs.append(f) return fs f1, f2, f3 = count() print f1(), f2(), f3() 方法:问题的产生是因为函数只在执行时才去获取外层参数i,若函数定义时可以获取到i,问题便可解决。而默认参数正好可以完成定义时获取i值且运行函数时无需参数输入的功能,所以在函数f()定义中改为f(m = i),函数f返回值改为m*m即可.查看全部
-
返回闭包不能引用循环变量查看全部
-
但是,考察上一小节定义的 calc_sum 函数: def calc_sum(lst): def lazy_sum(): return sum(lst) return lazy_sum 注意: 发现没法把 lazy_sum 移到 calc_sum 的外部,因为它引用了 calc_sum 的参数 lst。 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。查看全部
-
匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。查看全部
-
偏函数的写法, 偏函数名 = functools.partial(原函数名,原函数里面的方法或者参数)查看全部
-
写装饰器的时候,def 跟return 是对应的,def什么就返回什么(格式上是水平对齐的),然后,r的调用一定是在两个t1,t2 中间,这样,t2 才是经过了调用原参数之后的时间。 (*args,**kw)就只是为了让装饰器增加对多参数的支持查看全部
-
import math def is_sqr(x): return math.sqrt(x)%1 == 0 print filter(is_sqr, range(1, 101))查看全部
-
继承一个类 如果已经定义了Person类,需要定义新的Student和Teacher类时,可以直接从Person类继承: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender 定义Student类时,只需要把额外的属性加上,例如score: class Student(Person): def __init__(self, name, gender, score): super(Student, self).__init__(name, gender) self.score = score 一定要用 super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。 函数super(Student, self)将返回当前类继承的父类,即 Person ,然后调用__init__()方法,注意self参数已在super()中传入,在__init__()中将隐式传递,不需要写出(也不能写)。查看全部
-
一个.py 文件就是一个模块查看全部
-
performance(f) 这里的f 是指向@performance里面的factorial()的<br> fn()代表定义的修改过的f()函数(同时也是为了增加多参数支持),其中包含原函数,用r来调用了一次r=f(*args, **kw),f.__name__也调用了原函数f(),并且把它给返回了return r<br> t1,t2,和print 这几句就是修改原函数f()所增加的部分。查看全部
-
方法:问题的产生是因为函数只在执行时才去获取外层参数i,若函数定义时可以获取到i,问题便可解决。而默认参数正好可以完成定义时获取i值且运行函数时无需参数输入的功能,所以在函数f()定义中改为f(m = i),函数f返回值改为m*m即可.查看全部
-
闭包还不是很理解 http://www.cnblogs.com/ma6174/archive/2013/04/15/3022548.html查看全部
举报
0/150
提交
取消