我偶然發現了一種可以關閉我對Pythons變量作用域的理解的情況。另一個UnboundLocalError:賦值之前引用的局部變量問題
下面是代碼:
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不喜歡我在第一種情況下打印價值。
我不使用全局變量,我只是對這個範圍現象感到困惑。我不得不做這個例子,儘可能簡潔地提出我的問題。 – bioffe