1
쉽게 편집 할 수 있도록 별도의 파일에 규칙이있는 Turing 컴퓨터를 시뮬레이트하는 프로그램을 디자인하고 있습니다. 불행하게도 RuleTable에서 먼저 계산을 시도하면 NameError가 발생합니다.'global'이 사용 되었더라도 NameError를 제공하는 가져온 파일의 변수 사용
기분을 상하게하는 조각 :
import TheRules
def turIt():
global ruleTable #Global has been used here.
tapeSegment = tape[tapePos]
for x in range(0,len(ruleTable)): #Error here.
if ruleTable[x][2] == machineState and ruleTable[x][3] == tape[tapePos]:
machineState = ruleTable[x][4]
tape[tapePos] = ruleTable[x][5]
move(ruleTable[x][6])
TheRules :
ruleTable = [1]
ruleTable[0] = ("startRule","anyVal","anyVal","1","1",1)
#New rules go down here:
가 정확하려면 :
것은 무엇을 가장 쉬운 방법이 될 것 "나가서 설명하자면 NameError 글로벌 이름 'ruleTable은'정의되지 않았습니다" 이걸 처리할까요? 나는 그것에 대해 철저히 혼란 스럽다.
을 사용하여 변수에 액세스 해 주셔서 감사합니다. – EnronEvolved
당신이해야 할 일은 아니지만, 완료를 위해서'Therules import *'를 통해 모든 이름을 한 번에 가져올 수 있습니다. 그것은 빨리 혼란스럽게된다. – TankorSmash