20课后作业
def funOut():def funIn():
print('宾果!你成功访问到我啦!')
return funIn
funOut()()
宾果!你成功访问到我啦!
这个程序 return funIn返回值是什么?是一个变量funIn吗?还是其他什么?
funOut()()这个意思就是访问funIn()吗?如果是funIn():里面再嵌套一个funin()函数是否可以通过funOut()()()来访问?
还有一个函数里可以嵌套多个函数吗?若可以应该怎样访问funin()?
def funOut():
def funIn():
print('宾果!你成功访问到我啦!')
def funin():
print('宾果2!你成功访问到我啦!')
return funIn()+funin()
若是这样呢?
def funOut():
def funIn():
print('宾果!你成功访问到我啦!')
def funin():
print('宾果2!你成功访问到我啦!')
return funIn+funin
这个程序 return funIn返回值是什么?是一个变量funIn吗?还是其他什么?
返回的就是一个函数,因为 funIn 没有带上括号,如果带上括号了返回的就是 funIn 函数的调用结果
funOut()()这个意思就是访问funIn()吗?
funOut()() 相当于 funIn()
如果是funIn():里面再嵌套一个funin()函数是否可以通过funOut()()()来访问?
可以,相当于 funOut()()() -->> funIn()() -->> funin()
还有一个函数里可以嵌套多个函数吗?若可以应该怎样访问funin()?
可以通过这样访问:
def funOut():
def funIn():
print('宾果!你成功访问到我啦!')
def funin():
print('宾果2!你成功访问到我啦!')
return (funIn,funin)
funOut()()
funOut()()
输出结果:
宾果!你成功访问到我啦!
宾果2!你成功访问到我啦!
1. return funIn 表示返回 funIn 函数本身
2. 是的
3. 需要这样以元组的形式返回两个函数:
def funOut():
def funIn():
print('宾果!你成功访问到我啦!')
def funin():
print('宾果2!你成功访问到我啦!')
return funIn, funin
Twilight6 发表于 2020-8-1 16:09
返回的就是一个函数,因为 funIn 没有带上括号,如果带上括号了返回的就是 funIn 函数的调用结果
...
求问:
def funOut():
def funIn():
print('宾果!你成功访问到我啦!')
def funin():
print('宾果2!你成功访问到我啦!')
return (funIn(),funin())
结果:
funOut()
宾果!你成功访问到我啦!
宾果2!你成功访问到我啦!
(None, None)
为什么结果会多了一行(None, None)
(一选代码格式会乱码,见量下)
月魔同学 发表于 2020-8-1 16:26
求问:
def funOut():
def funIn():
因为 函数如果你没有设置返回值 默认返回一个None
所以就是因为你里面函数并没有设置 return 所以默认返回 None ,而你加上 print 就将 None 打印出来了 Twilight6 发表于 2020-8-1 16:29
因为 函数如果你没有设置返回值 默认返回一个None
所以就是因为你里面函数并没有设置 return 所 ...
是funIn和funin没有返回值吗?如果是那下面的funIn同样没有返回值,为什么就不打印None呢?
def funOut():
def funIn():
print('宾果!你成功访问到我啦!')
return funIn()
结果:
funOut()
宾果!你成功访问到我啦!
运行下下面代码,你就知道了:
def funOut():
def funIn():
print('宾果!你成功访问到我啦!')
return funIn
funOut()()
print('----------'*5)
print(funOut())
print('----------'*5)
print(funOut()())
还有这个:
def func():
return 10000
print(func())
def func():
pass
print(func())
页:
[1]