-
利用ImportError错误,我们经常在Python中动态导入模块: try: from cStringIO import StringIO except ImportError: from StringIO import StringIO 上述代码先尝试从cStringIO导入,如果失败了(比如cStringIO没有被安装),再尝试从StringIO导入。这样,如果cStringIO模块存在,则我们将获得更快的运行速度,如果cStringIO不存在,则顶多代码运行速度会变慢,但不会影响代码的正常执行。 try 的作用是捕获错误,并在捕获到指定错误时执行 except 语句。查看全部
-
from a import b 和 import a 是不同的 因为from a import b,引入的b就是直接的函数,可以直接应用模块a里面的b 但是import a 的话,利用函数b,需要a.b 因此,如果两个函数重名,前者会有冲突,因此可以采用from a import b as c,用c来代替重名的某个b查看全部
-
还得再看,没记会,需要多练习查看全部
-
Python的 decorator 本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数。查看全部
-
f1的原始定义函数就被彻底隐藏了,拿到的f1是带装饰器的f1,如果像第一种情况给g1,f1的定义没有变,封装后的函数是g1.查看全部
-
def count(): fs = [] for i in range(1, 4): def f(j): return j*j r = f(i) fs.append(r) #r是函数f()计算后的返回值,是int型对象,所以fs当然是一个有3个整数的list return fs print count() 1 2 3 4 5 6 7 8 9 10 11 12 def count(): fs = [] for i in range(1, 4): def f(j): def g(): return j*j return g r = f(i) #r是g()的闭包 fs.append(r) #fs存的将是g()闭包的三个实现,分别是在输入为1,2,3的时候 return fs f1, f2, f3 = count() #f1,f2,f3就是这三个闭包 print f1(), f2(), f3() #加()后就是函数的求值,所以f1()就相当于call g(1),返回值就是1,f2()就相当于call g(2),返回值就是4等查看全部
-
def gcd(a, b): if b == 0: return a return gcd(b, a % b)查看全部
-
rrrrrr查看全部
-
定制类与特殊方法查看全部
-
类的继承查看全部
-
面向对象编程查看全部
-
模块和包查看全部
-
函数式编程查看全部
-
返回函数 使计算延迟查看全部
-
函数也是一个对象,称为可调用对象。一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。 实现了__call__()后,你无法确定它究竟是一个函数还是一个类实例,所以,在Python中,函数也是对象,对象和函数的区别并不显著。查看全部
举报
0/150
提交
取消