伊格利斯 发表于 2020-11-15 23:24:11

函数返回的问题

def fun1():
        x=
        def fun2():
                x*=x
                return x
        return fun2()



def fun(x):
        def fun2(y):
                return x*y
        return fun2


这两个函数返回怎么一个有()一个没有啊

Twilight6 发表于 2020-11-15 23:29:41

第一个函数:
def fun1():
      x=
      def fun2():
                x*=x
                return x
      return fun2()
这里明显 x 是 列表 , 所以 fun2 中 x *= x 也只是将 x 列表中的第一个值平方后赋值回第一个值

而且最后返回 x,所以还是列表

第二个代码:
def fun(x):
      def fun2(y):
                return x*y
      return fun2

x , y 都是传入参数,最终的值需要看你传入参数的是什么

例如你传入的都是 5 ,那么最终结果返回的肯定是 25

假如你一个传入 5 一个 '5' 那么最终结果为 '55555'

伊格利斯 发表于 2020-11-15 23:34:26

Twilight6 发表于 2020-11-15 23:29
第一个函数:

这里明显 x 是 列表 , 所以 fun2 中 x *= x 也只是将 x 列表中的第一个值平方后赋值 ...

这个返回值看懂了,就是第一个函数return fun2(),这为什么有()

Twilight6 发表于 2020-11-15 23:42:50

伊格利斯 发表于 2020-11-15 23:34
这个返回值看懂了,就是第一个函数return fun2(),这为什么有()

抱歉,误解了你的问题

有带括号的表示返回函数调用的结果,即返回return 设置的值

没有带括号的表示是一个函数体,表示某个函数本身
页: [1]
查看完整版本: 函数返回的问题