零基础Python第二十讲:
>>> def FunX(x):def FunY(y):
return x*y
return FunY()
>>> def FunX(x):
def FunY(y):
return x*y
return FunY
return FunY不能加括号? 可以 就是一个返回值可以加的 BngThea 发表于 2017-12-10 07:34
可以
>>> def FunX(x):
def FunY(y):
return x*y
return FunY
>>> FunX(5)(8)
40
>>> def FunX(x):
def FunY(y):
return x*y
return FunY()
>>> FunX(5)(8)
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
FunX(5)(8)
File "<pyshell#16>", line 4, in FunX
return FunY()
TypeError: FunY() missing 1 required positional argument: 'y'
>>>
加括号和不加括号的区别。。。。。为什么会这样?
是因为FunY()没有输入参数么?那么第一个为什么不用输入参数? py大神 发表于 2017-12-10 14:49
加括号和不加括号的区别。。。。。为什么会这样?
是因为FunY()没有输入参数么?那么第一个为什么不用 ...
不加括号返回的就是一个指向函数的指针,调用的时候需要加上括号才能实现函数功能
加了括号后就直接能实现函数功能了 BngThea 发表于 2017-12-10 15:31
不加括号返回的就是一个指向函数的指针,调用的时候需要加上括号才能实现函数功能
加了括号后就直接能实 ...
那为什么加了括号的FunX(5)(8)会报错?
是不是因为加了括号的return FunY()会直接实现return x*y 从而忽略def FunY(y)? BngThea 发表于 2017-12-10 15:31
不加括号返回的就是一个指向函数的指针,调用的时候需要加上括号才能实现函数功能
加了括号后就直接能实 ...
他的报错说没有y的参数,但是不是给他了8么? py大神 发表于 2017-12-10 17:27
他的报错说没有y的参数,但是不是给他了8么?
return的时候函数括号里面要写上y {:10_243:} liuL2 发表于 2017-12-10 20:17
{:10_277:}
页:
[1]