if __name__ == '__main__':
这个是确保执行的本文件的主函数。
python在执行时,会默认给__name__一个值,就是__main__。
举个栗子:文件p1.py和p2.py,其中在p1中调用了p2.
那么p2中的if __name__ == '__main__':就不成立,因为在p2环境中,__name__为p2。
performance是一个装饰器,用于统计程序的执行时间。
装饰器(decorator)是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。装饰器就是一个函数,与普通函数不同的是装饰器的输入参数是一个函数。
@performance
def factorial(n):
等价于
performance(factorial)(n)