参考:csdn blog
程序执行过程中,当读取到函数定义时,则记录下该函数名字。即程序知道有哪些函数,但不知道函数里的内容。当真正执行该函数时,才去读取该函数的内容。
# 正确
def function(**kwargs):
loss = calcu_cls_loss(**kwargs)
def calcu_cls_loss(**kwargs):
return FocalLoss(**kwargs)
function({"pred": preds, "labels": labels})
# 报错
def function(**kwargs):
loss = calcu_cls_loss(**kwargs)
function({"pred": preds, "labels": labels})
def calcu_cls_loss(**kwargs):
return FocalLoss(**kwargs)