鱼C论坛

 找回密码
 立即注册
查看: 2027|回复: 7

[已解决]内嵌函数

[复制链接]
发表于 2022-4-10 20:32:41 | 显示全部楼层 |阅读模式

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

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

x
求大神解释下这两个的区别,,加括号和不加括号有什么区别呢。。

最佳答案
2022-4-11 19:57:03
Victor0321 发表于 2022-4-11 19:39
嗯嗯  我大概理解了 意思了。。放在实际的应用中 比如我定义了下面这个power()函数,这样写是不是有问题 ...

这个属于返回值,那么应该保证形参一致
比如你这个实际形参是一个,而你调用的参数是0个,这就是不可以的
捕获.JPG
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-10 20:34:42 From FishC Mobile | 显示全部楼层
不带括号表示地址,地址后面加括号表示调用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-11 16:16:35 | 显示全部楼层
wp231957 发表于 2022-4-10 20:34
不带括号表示地址,地址后面加括号表示调用

emmm 听的不是特别清晰 能举个小小的例子让我明白下么。。。  第一次接触编程的函数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-11 16:31:07 | 显示全部楼层
Victor0321 发表于 2022-4-11 16:16
emmm 听的不是特别清晰 能举个小小的例子让我明白下么。。。  第一次接触编程的函数

#先看一个普通的函数
def add(a,b):
    return a+b

#看正常调用
print(add(5,6))
#看一下另类调用
wp=add
print(wp(5,6))

#这里看一下嵌套函数
def add(a,b):
    def sub(c,d):
       return c-d
    return sub(a,b)

#看一下调用
print(add(5,6))
#看一下另类调用
def add(a,b):
    def sub(c,d):
       return c-d
    return sub

print(add(5,6)(5,6))
print(add(5,6)(15,6))
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-11 17:12:50 | 显示全部楼层
wp231957 发表于 2022-4-11 16:31
#先看一个普通的函数
def add(a,b):
    return a+b

#看一下另类调用
def add(a,b):
    def sub(c,d):
       return c-d
    return sub
我试了试pirnt(add(5,6))  显示的是函数的地址。。所以 这个add(5,6)()我可以不可以在这个例子中就等于是sub()
<function add.<locals>.sub at 0x00000167C272B0A0>
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-11 18:03:04 From FishC Mobile | 显示全部楼层
Victor0321 发表于 2022-4-11 17:12
#看一下另类调用
def add(a,b):
    def sub(c,d):

对的,实际上我举这个例子是有些瑕疵的
你知道咋回事就行了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-11 19:39:27 | 显示全部楼层
wp231957 发表于 2022-4-11 18:03
对的,实际上我举这个例子是有些瑕疵的
你知道咋回事就行了

嗯嗯  我大概理解了 意思了。。放在实际的应用中 比如我定义了下面这个power()函数,这样写是不是有问题啊 ,最后外层的这个函数应该是return exp_ 函数的引用,所以不应该是返回的是exp_ ()的值或者说是调用

def power(exp):
    def exp_ (base):
        return base ** exp
    return exp_()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-11 19:57:03 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
Victor0321 发表于 2022-4-11 19:39
嗯嗯  我大概理解了 意思了。。放在实际的应用中 比如我定义了下面这个power()函数,这样写是不是有问题 ...

这个属于返回值,那么应该保证形参一致
比如你这个实际形参是一个,而你调用的参数是0个,这就是不可以的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-29 08:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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