函数修饰符的调用问题
本帖最后由 liudaocen 于 2021-4-21 19:47 编辑题主在学函数修饰符的时候,看到这样一段代码,不明白了里面的f()是什么意思。
def test(f):
print "before ..."
f()
print "after ..."
@test
def func():
print "func was called"
我想他就是函数test的一个参数,怎么能被调用呢? 参数是函数指针就可以调用啊
yuxijian2020 发表于 2021-4-21 19:48
参数是函数指针就可以调用啊
那这个op()存在的意义是什么? liudaocen 发表于 2021-4-21 20:08
那这个op()存在的意义是什么?
存在的意义是可以调用不同的函数 liudaocen 发表于 2021-4-21 20:08
那这个op()存在的意义是什么?
你把 函数看做也是一种对象,就比较好理解了。
@test
def ... 这种写法叫 装饰器/修饰器。其本质是 函数嵌套。
这里的情况,我觉得写得很怪,甚至是有错误。。
你可自己先搜搜关于python装饰器的解释,应该有更好的例子。
yuxijian2020 发表于 2021-4-21 20:14
感谢!
你写的这段代码我觉着好绕啊哈哈哈,我是个小白,目前能力和思维方式还不是很成熟。还是需要多多学习。 python对参数没有严格限制,可以是任何对象,包括不限于,类,函数,数据类型。 Stubborn 发表于 2021-4-22 11:13
python对参数没有严格限制,可以是任何对象,包括不限于,类,函数,数据类型。
了解{:10_323:}
页:
[1]