鱼C论坛

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

python关于函数调用执行的问题,需要老司机帮助

[复制链接]
发表于 2018-5-14 09:52:57 | 显示全部楼层 |阅读模式

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

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

x
def a():
        return 1111
b=a
print(a)
如上所示,在关于函数的调用,直接使用 a() 就可以获得结果,但是不加括号直接 print(a) 返回的<function a at 0x00BF24B0>。在百度上搜索,说加括号调用直接返回结果,不加括号则是函数调用。但还是不太理解,或者说在什么时候可能用的着
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-5-14 10:01:11 | 显示全部楼层

回帖奖励 +1 鱼币

不加括号返回的是这个函数的地址,也就是函数指针,加了括号表示执行函数过程
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-14 10:24:52 | 显示全部楼层
a 表示函数名,调用函数需要在函数名后面加括号;
b = a   #把a的值赋给b,即b也等同于这个函数名,也可以通过b()调用这个函数
print(a)   #打印a所指向的函数
print(b)   #打印b所指向的函数,同a的指向
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-14 10:26:57 | 显示全部楼层
本帖最后由 ABC23 于 2018-5-14 10:48 编辑

直接调用repr函数,print调用str函数。
了解一下两个函数的区别。

在类中重写这两个方法时,建议使用repr,程序优先调用repr,在repr找不到时再去调用str函数。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-14 11:14:17 | 显示全部楼层
hi

def a():
        return 1111
a() # a()  直接进行函数调用,返回函数的执行结果
print(a) # a  返回函数的地址;这种场景在后面的课后题中会遇到
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-14 11:27:31 | 显示全部楼层
谢谢了诸位,大概理解了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-30 04:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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