我尝试对装饰器使用派"@“语法,但我似乎无法使其适用于我的特定示例。
这样我就能达到我想要的效果。
import pandas as pd
def prepare_todays_campaigns(decorated):
campaigns_outgoing = pd.DataFrame({"test":[1,2,3]})
n_campaigns = len(campaigns_outgoing)
if n_campaigns > 0:
print(
f"{n_campaigns} to process."
)
decorated(campaigns_outgoing)
def dec_test(campaigns_outgoing):
for _, row in campaigns_outgoing.iterrows():
print(row)
prepare_todays_campaigns(dec_test)即

但是当我尝试使用@语法糖时,我似乎得不到预期的结果……
def prepare_todays_campaigns(decorated):
def wrapper(*args, **kwargs):
# creatives x campaign
campaigns_outgoing = pd.DataFrame({"test":[1,2,3]})
n_campaigns = len(campaigns_outgoing)
if n_campaigns > 0:
print(
f"{n_campaigns} to process."
)
decorated(*args, **kwargs)
return wrapper
@prepare_todays_campaigns
def dec_test(campaigns_outgoing):
for _, row in campaigns_outgoing.iterrows():
print(row)
dec_test()结果:

有没有人对如何解决这个问题有什么建议?
发布于 2021-10-19 19:18:19
看一下方法签名def dec_test(campaigns_outgoing):
当你调用这个方法时:
dec_test()
您不需要传入campaigns_outgoing参数。
https://stackoverflow.com/questions/69636403
复制相似问题