鱼C论坛

 找回密码
 立即注册
查看: 3273|回复: 8

函数修饰符的调用问题

[复制链接]
发表于 2021-4-21 19:24:01 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 liudaocen 于 2021-4-21 19:47 编辑

题主在学函数修饰符的时候,看到这样一段代码,不明白了里面的f()是什么意思。


def test(f):
    print "before ..."
    f()
    print "after ..."

@test
def func():
    print "func was called"

我想他就是函数test的一个参数,怎么能被调用呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-4-21 19:48:14 | 显示全部楼层
参数是函数指针就可以调用啊

1.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-4-21 20:08:53 | 显示全部楼层
yuxijian2020 发表于 2021-4-21 19:48
参数是函数指针就可以调用啊

那这个op()存在的意义是什么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-21 20:10:41 | 显示全部楼层
liudaocen 发表于 2021-4-21 20:08
那这个op()存在的意义是什么?

存在的意义是可以调用不同的函数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-21 20:14:38 | 显示全部楼层
liudaocen 发表于 2021-4-21 20:08
那这个op()存在的意义是什么?

2.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-21 20:22:17 | 显示全部楼层
你把 函数看做也是一种对象,就比较好理解了。
@test
def ... 这种写法叫 装饰器/修饰器。其本质是 函数嵌套。

这里的情况,我觉得写得很怪,甚至是有错误。。

你可自己先搜搜关于python装饰器的解释,应该有更好的例子。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-21 20:24:30 | 显示全部楼层

感谢!
你写的这段代码我觉着好绕啊哈哈哈,我是个小白,目前能力和思维方式还不是很成熟。还是需要多多学习。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-22 11:13:52 | 显示全部楼层
python对参数没有严格限制,可以是任何对象,包括不限于,类,函数,数据类型。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-22 15:36:30 | 显示全部楼层
Stubborn 发表于 2021-4-22 11:13
python对参数没有严格限制,可以是任何对象,包括不限于,类,函数,数据类型。

了解
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-15 09:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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