重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
第一处函数fu2无参数,如果不带括号返回的是这个函数的属性,需要带括号才会返回参数
10余年的汨罗网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整汨罗建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“汨罗网站设计”,“汨罗网站推广”以来,每个客户项目都认真落实执行。
第二处下面用法是a=f1(5)(8),根据函数定义已经给函数f2()传导参数,所以return时不需要再用()传导参数
你这里要是加了括号,那么返回的就是fucy函数的返回值。那么他的返回值是多少呢?函数没传,那肯定就会TypeError,说没有参数;那你加参数的话,那闭包还有撒用?
我觉得,加没加,就是是不是对象的区别
这样写你看下:这是这种写法无法将x传到b里面去
def b(y):
return x+y
def a(x):
return b
其实你调用a--打印的是a的内存地址,a(x)就是调用的a方法,返回的是b相当于你直接打印b的内存地址一样,
所以
a--函数a的内存地址
a(x) --调用a方法,返回b函数对象相当于--b
a(x)(y)--b(y)调用b方法返回x和y的值,这里x取的是a方法的参数值,y是b方法的参数值,这点可以理解下参数的作用域
对象调用方法时,
实际上是通过类调用的
a
=
muffedcalculator()
a.calc(expr)
实际上是这样调用的
muffledcalculator.calc(a,
expr)
这样self
就是
a,
python隐含地把a
传进方法
替代了self,
就成了绑定的方法,
就可以执行了.
否则就是非绑定方法
我有一个初步理解,但不知道底层细节,python中函数名也是个变量,可以说你定义的所有名称都是变量,所有的变量你理解成一个指针,指向一个空间,传递名称则传递指针,给其他函数这个空间的开始。那么这个()呢,在py中有个call方法,你看不到,这个括号会执行call,call会运行解释你的代码。这样,一个函数才算是真正执行了。