【发布时间】:2018-07-19 12:18:57
【问题描述】:
我可以弄清楚 python 的行为。这是代码示例:
def foo():
print('hello from initial foo')
def using_foo():
foo()
def wrapper(func):
def foo():
print('Now is overload foo')
print('Hello from wrapper')
func()
using_foo()
wrapper(using_foo)
这将打印:
来自初始 foo 的问候
来自包装器的你好
来自初始 foo 的问候
但我希望:
来自初始 foo 的问候
来自包装器的你好
现在是重载 foo
因为下一个工作正常:
def foo():
print('Hello from initial foo')
def using_foo():
foo()
using_foo()
if True:
def foo():
print('now it is overload foo')
using_foo()
输出:
来自初始 foo 的问候
现在是重载 foo
【问题讨论】:
-
寻找装饰器,这些装饰器旨在作为函数包装器
标签: python function overloading wrapper