-
可以给函数起个“别名”来避免冲突: from math import log from logging import log as logger # logging的log现在变成了logger print log(10) # 调用的是math的log logger(10, 'import from logging') # 调用的是logging的log Python的os.path模块提供了 isdir() 和 isfile()函数查看全部
-
functools可以用来自动化完成这个“复制”的任务,把原函数的一些属性复制到新函数中 import functools def log(f): @functools.wraps(f) def wrapper(*args, **kw): print 'call...' return f(*args, **kw) return wrapper 注意@functools.wraps应该作用在返回的新函数上。查看全部
-
使用 decorator 用Python提供的 @ 语法,这样可以避免手动编写 f = decorate(f) 这样的代码。 要让 @log 自适应任何参数定义的函数,可利用Python的 *args 和 **kw,保证任意个数的参数总是能正常调用 def log(f): def fn(*args, **kw): print 'call ' + f.__name__ + '()...' return f(*args, **kw) return fn查看全部
-
>>>map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]) [1, 4, 9, 16, 25, 36, 49, 64, 81] 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。 使用匿名函数,可以不必定义函数名,直接创建一个函数对象,很多时候可以简化代码: >>> sorted([1, 3, 9, 5, 0], lambda x,y: -cmp(x,y)) [9, 5, 3, 1, 0]查看全部
-
def __call__(self,num): a,b,L = 0,1,[] for n in range(num): L.append(a) a,b = b,a+b return L查看全部
-
https://pypi.python.org查看全部
-
class Student(object): def __init__(self, name, score): self.name = name self.__score = score self.__grade = self.__grade_set(score) @property def score(self): return self.__score @score.setter def score(self, score): if score < 0 or score > 100: raise ValueError('invalid score') self.__score = score self.__grade = self.__grade_set(score) @property def grade(self): return self.__grade def __grade_set(self,score): tmp = 'A' if score>80: tmp = 'A' elif score==60: tmp = 'B' elif score<60: tmp = 'C' return tmp查看全部
-
偏函数结合匿名函数使用,采用简洁的代码实现程序功能查看全部
-
def calc_sum(lst): def lazy_sum(): return sum(lst) return lazy_sum 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure) 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。 返回函数不要引用任何循环变量,或者后续会发生变化的变量。查看全部
-
def __init__(self, num): self.num = num self.fib = [] if num==1: self.fib = [0] elif num ==2: self.fib =[0,1] elif num>2: n=3 self.fib =[0,1] while(n<=num): #print self.l[n] value= self.fib[n-2]+self.fib[n-3] self.fib.append(value) n=n+1 def __len__(self): return self.num def __str__(self): if self.num ==0: return "" list_str ='[' for x in self.fib: list_str=list_str+str(x)+',' list_str =list_str[:-1]+']' return list_str __repr__=__str__查看全部
-
装饰器类似面向切面编程 注解? 简化代码,增强代码的复用率查看全部
-
def count(): fs = [] for i in range(1, 4): n = i def g(n): def h(): return n*n return h fs.append(g(n)) return fs f1, f2, f3 = count() print f1(), f2(), f3()查看全部
-
class Person(object): def __init__(self,name,gender,birth,*args,**kw): self.name = name self.gender = gender self.birth =birth for k,v in kw.iteritems(): setattr(self,k,v) xiaoming = Person('Xiao Ming', 'Male', '1990-1-1', job='Student') print xiaoming.name print xiaoming.job查看全部
-
# -*- coding: utf-8 -*- from __future__ import unicode_literals s = 'am I an unicode? 中问' print isinstance(s, unicode)查看全部
-
def performance(unit): def perf(f): t1 = time.time() print t1 def wrapper(*args,**kw): print 'call factorial() in',unit return f(*args,**kw) t2 = time.time() print t2 print 'use time :',t2-t1 return wrapper return perf查看全部
举报
0/150
提交
取消