鱼C论坛

 找回密码
 立即注册
查看: 1750|回复: 5

[已解决]咨询函数问题

[复制链接]
发表于 2021-5-27 16:27:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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 19:13:02
想请问一下区别带括号和不带括号是什么原因?

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

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

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


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

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

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


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-5-27 16:29:59 | 显示全部楼层
是不是因为形参和实参的原因?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-27 16:30:31 From FishC Mobile | 显示全部楼层
一个是返回地址(不带括号)
一个是返回值(带括号)
至于什么时候用?什么时候不用
就是一个答案,需要用时
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-27 16:49:27 | 显示全部楼层
如果把函数比作人的话
不带括号,指的是这个人的身份,返回的是函数的地址
带括号,指的是这个人的工作,返回的是函数的工作内容

打个比方print()函数
print 是打印员
print()是打印(打印员的工作)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-27 19:13:02 | 显示全部楼层    本楼为最佳答案   
想请问一下区别带括号和不带括号是什么原因?

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

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

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


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

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

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


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-27 21:08:12 | 显示全部楼层
谢谢几位,基本上懂了 ,年纪大了 自学不太容易
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 18:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表