今天在学习python时看到了一段代码甚是震惊. 大家都说python 是一门动态语言,刚开始我还没有很深刻的认识到什么叫动态语言,但是看到这段代码后终于明白了,废话不多说,上代码:
def maker(N):
def action(X):
return X ** N
return action
这是一段很简单的代码, 看看运行后的结果:
def maker(N):
def action(X):
return X ** N
return action
f = maker(2)
f(3) #结果是9
g = maker(3)
g(3) #结果是27
结果我写在后面了, 可以看到每次maker()后都产生了一个新的函数对象,这么简单的一段代码这实现了工厂函数的功能真是让我大开眼界.
PS:到现在为此,我对python的理解是:它类似于String中控制反转的道理,原来许多的工作是由程序员来完成,但现在由编译器来完成.连对象的类型也是由编译器来识别,所以大大简化了程序员的工作.