1
私は関数 'In_queue'で2つのグローバル変数( 'head'と 'tail')を呼び出すことを意図していました。エラーは次のとおりです。グローバル変数を呼び出すときの未解決の参照?
UnboundLocalError: local variable 'tail' referenced before assignment.
「Out_queue」別の関数でますが、正常に呼び出さ両方の二つの変数。
コード:
tail = NODE(VALUE())
head = NODE(VALUE())
def In_queue():
try:
node = Create_node(*(Get_value()))
except:
print("OVERFLOW: No room availible!\n")
exit(0)
if not head.nextprt or not tail.nextprt:
tail.nextprt = head.nextprt = node
else:
tail.nextprt = node
tail = node
return None
def Out_queue():
if head.nextprt == tail.nextprt:
if not head.nextprt:
print("UNDERFLOW: the queue is empty!\n")
exit(0)
else:
node = head.nextprt
head.nextprt = tail.nextprt = None
return node.value
else:
node = head.nextprt
head.nextprt = node.nextprt
return node.value
あなたはローカルに 'tail = node'を割り当てます。 UnboundLocalErrorにはたくさんの質問がありますが、私はさらにいくつかの研究をお勧めします。 – jonrsharpe
変数に代入すると、ローカルになります。グローバルテール変数に代入したい場合は、 'global tail'を関数のどこかに置く必要があります。 – pschill