潺陵大地 发表于 2021-5-27 16:27:39

咨询函数问题

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


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

上面二个例子,一个return   fun2 下面是return fun2() 想请问一下区别带括号和不带括号是什么原因,然后就是什么情况下带括号什么情况下不带括号,谢谢!

潺陵大地 发表于 2021-5-27 16:29:59

是不是因为形参和实参的原因?

wp231957 发表于 2021-5-27 16:30:31

一个是返回地址(不带括号)
一个是返回值(带括号)
至于什么时候用?什么时候不用
就是一个答案,需要用时

逃兵 发表于 2021-5-27 16:49:27

如果把函数比作人的话
不带括号,指的是这个人的身份,返回的是函数的地址
带括号,指的是这个人的工作,返回的是函数的工作内容

打个比方print()函数
print 是打印员
print()是打印(打印员的工作)

Twilight6 发表于 2021-5-27 19:13:02


想请问一下区别带括号和不带括号是什么原因?

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

没有带括号的表示是一个函数体,表示某个函数本身,返回的值也是这个函数对象及内存地址

什么情况下带括号什么情况下不带括号?

这主要是看你自己具体情况而定~

你想给函数取别名时候就不用带括号

带括号是会返回函数的返回值的


潺陵大地 发表于 2021-5-27 21:08:12

谢谢几位,基本上懂了 ,年纪大了 自学不太容易 {:10_266:}
页: [1]
查看完整版本: 咨询函数问题