Python核心技术——不可或缺的自定义函数(闭包)

2023-02-23 0 511

Python核心技术——不可或缺的自定义函数(闭包)

前面他们早已晓得了自订表达式和小常识,那时他们来这节Engilbert谈谈甚么是旋量群?为甚么要旋量群?假如对表达式要学或是不介绍的看一看下列该文

Python关键技术——必不可少的自订表达式(上)

Python关键技术——必不可少的自订表达式(中)

Python关键技术——必不可少的自订表达式(下)

甚么是旋量群?

旋量群单纯而言,在外部表达式中表述两个外部表达式,外部表达式能提及外部表达式的表达式,外部表达式的codice是外部表达式。呢觉得很熟识?呵呵,对了。

旋量群类似于上节(Python关键技术——必不可少的自订表达式(下))中的冗余表达式,但须要特别注意,旋量群中的外部表达式codice是两个表达式(外部表达式),而并非具体内容的值。回到的表达式一般而言突显一个表达式,那个表达式能在前面被拒绝执行初始化。

旋量群的特征

旋量群的主要特征如下:

1.是两个冗余表达式

2.内层表达式提及外层表达式的表达式

3.内层表达式作为外层表达式的codice

根据旋量群的表述和特征,他们来看一看Python中闭包怎么写?例如,计算两个数的n次幂:

Python核心技术——不可或缺的自定义函数(闭包)

针对上面的例子:计算两个数的 n 次幂,对代码进行解释:

Python核心技术——不可或缺的自定义函数(闭包)

其中外部表达式 nth_power() codice表达式 exponent_of(),而并非两个具体内容的数值。在执行完square = nth_power(2)和cube = nth_power(3)后,外部表达式 nth_power() 中的参数 exponent,会被外部表达式 exponent_of() 记住和保存。只要这样做,后续初始化 square(2) 或是 cube(3) 时,程序就能正确执行和顺利输出结果,而不会报错错:参数exponent 为表述。

Python核心技术——不可或缺的自定义函数(闭包)

他们能看出直接输出square和cube,回到的是exponent_of那个表达式,而初始化square(2) 或是 cube(3)时,将参数传递给了exponent_of表达式,回到了具体内容的结果。

为甚么要旋量群呢?

学习到这里,你也许会疑惑思考,为甚么要旋量群呢?因为上面例子:计算两个数的 n 次幂,我能写成不用旋量群的形式啊!

Python核心技术——不可或缺的自定义函数(闭包)

毫无问题,但你要晓得,使用旋量群的两个原因,会让程序变得更简洁易读。假设,比如你要计算很多个数的平方,那么你觉得写成哪一种形式更好呢?

第一种,不使用旋量群的形式如下:

Python核心技术——不可或缺的自定义函数(闭包)

第二种,使用旋量群的形式如下:

Python核心技术——不可或缺的自定义函数(闭包)

他们能发现显然是第二种更加简洁,他们来具体内容分析一下:

首先,从直观来看,第二种你每次初始化表达式都能少输入两个参数,表达更为简洁其次,能提高程序的运行效率。类似于于冗余表达式的优点,他们晓得表达式开头须要做一些额外工作,而当你须要多次初始化该表达式时,假如将这些额外工作的代码放在外部表达式,能减少多次初始化导致的不必要的开销,提高程序的运行效率。最后,旋量群常常和装饰器常常组合一起使用,前面他们再具体内容介绍。

总结

这次他们主要讲了旋量群,从甚么是旋量群到旋量群的特征,通过例子进行进一步理解旋量群。最后,他们说了一下为甚么要使用旋量群。

举报/反馈

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务