python – 另一个UnboundLocalError:在赋值问题之前引用的局部变量
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 另一个UnboundLocalError:在赋值问题之前引用的局部变量,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1054字,纯文字阅读大概需要2分钟。
内容图文
![python – 另一个UnboundLocalError:在赋值问题之前引用的局部变量](/upload/InfoBanner/zyjiaocheng/744/b13650119e6043999231ba9ff6cba602.jpg)
我偶然发现了一个让我理解Pythons变量范围的情况.
这是代码:
transaction_id = None
def parseFileContent(hostID,marketID, content, writeToDB=False):
features = _buildObjects(StringIO.StringIO(content))
for feature in features:
featureID = adapter.addFeature(feature.name,boris)
print transaction_id #breaks here UnboundLocalError: local variable 'transaction_id' referenced before assignment
transaction_id = adapter.addFeatureTransactionToQueue(featureID, result[0], result[1], Command.ADD, boris, trans_id = transaction_id)
如果我替换最后一行
adapter.addFeatureTransactionToQueue(featureID, result[0], result[1], Command.ADD, boris, trans_id = transaction_id)
一切正常.我需要了解python不喜欢我在第一个场景中打印值.
解决方法:
如果分配给函数,Python编译器会将名称标记为函数的本地名称.您的最后一行分配给transaction_id,因此它被视为本地名称,而不是全局名称.
您需要通过使用函数内部的global关键字明确告诉编译器transaction_id是全局的:
def parseFileContent(hostID,marketID, content, writeToDB=False):
global transaction_id
如果没有分配,则名称将被视为非本地名称,您无需对其进行标记.
内容总结
以上是互联网集市为您收集整理的python – 另一个UnboundLocalError:在赋值问题之前引用的局部变量全部内容,希望文章能够帮你解决python – 另一个UnboundLocalError:在赋值问题之前引用的局部变量所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。