gpt4 book ai didi

python - 这个变量真的可以是 "referenced before assignment"

转载 作者:太空宇宙 更新时间:2023-11-03 12:09:14 25 4
gpt4 key购买 nike

我下面有一段代码(属于Django管理 View ,稍作修改)。我的 IDE (PyCharm) 在最后一行警告我 Local variable 'ModelForm' may be referenced before assignment

我不明白这是怎么发生的,但是当我注释掉第 6 行时:

with transaction.commit_manually():

然后警告消失。

是我遗漏了什么,还是 PyCharm 遗漏了什么?

这是代码块。我将其简化为几行,但它仍然发出警告。原始代码块在这里(70 行):http://pastebin.com/4UT9hRPb

    ModelForm = self.get_form(request, obj, form=form)

formsets = []
if request.method == 'POST':
# commit only when all forms are valid
with transaction.commit_manually():
try:
objects = queryset.all()
transaction.commit()
return self.response_change(request, new_object)

finally:
general_error = unicode(sys.exc_info()[1])
transaction.rollback()

form = ModelForm()

最佳答案

似乎这个警告不应该发生,至少我不明白为什么,也许 PyCharm 在确定 with block 的范围时有问题。但是您可以通过移动 with block 中的 ModelForm 赋值来消除此警告。

关于python - 这个变量真的可以是 "referenced before assignment",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13209243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com