from random import randint
shifts = [4, 4.2, 5, 6, 7]
days_names = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday']
workers_names = ['Itai', 'Or', 'Reut', 'Kuka', 'Aviel']
counter = 1
def shift_arrange(worker):
for day in days.values():
counter+=1
global avilable_shifts
avilable_shifts = check_avilable_shifts(day)
if not random_shifte_selector(worker,day): soft_reset(worker)
我設置計數器作爲一個全局變量,當我嘗試運行這段代碼我得到的局部變量錯誤:局部變量引用時我將它的全球
Traceback (most recent call last):
File "C:\Or\mypy\shift creator\shift cretor.py", line 144, in <module>
for w in workers.values(): shift_arrange(w)
File "C:\Or\mypy\shift creator\shift cretor.py", line 105, in shift_arrange
counter+=1
UnboundLocalError: local variable 'counter' referenced before assignmen
我看到有些人在這裏問這個問題,他刪除了他的pyc文件或其他東西(我不知道它是什麼),它的工作很好。爲什麼會發生?它不會發生在程序中的其他變量。
感謝或
但是,python不自動查找全局變量,如果它沒有在本地找到它?我的意思是,爲什麼它的作品只用於閱讀? 其平均蟒蛇知道如何找到它... –
但你在全球範圍內做到了這一點... – shx2
嗨我現在看到它。它讓我閱讀,但每當我需要寫它時,我都需要說它的全局,然後它從全局定義中獲取。 我不明白它的好處,但謝謝:-) –