2017-08-13 5 views
0

Also ich einen RFID-Scanner mache, und ich möchte in der Lage sein, verschiedene Modi einstellen, zum Beispiel Scannen zweimal etwas zu tun, als einmal scannen, aber immer dann, wenn dieser Code ausgeführt wird:RFID-Scanning-Skript ungebundene Fehler

import RPi.GPIO as GPIO 
GPIO.setwarnings(False) 
import signal 
import datetime 
import os 
import time 
import math 
import MFRC522 

MIFAREReader = MFRC522.MFRC522() 
Detected = False 

def Scan(): 
    counter = 0 
    (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL) 
    if(status == MIFAREReader.MI_OK): 
     Detected = True 
     counter += 1 
     GPIO.cleanup() 
     time.sleep(2) 
    if(Detected == True and status == MIFAREReader.MI_OK): 
     counter += 1 
     GPIO.cleanup() 

    print counter 

while True: 
    Scan() 
    time.sleep(1) 

ich diesen Fehler:

UnboundLocalError: local variable 'Detected' referenced before assignment 

ich python relativ neu bin, damit ich weiß nicht, was das bedeutet jede Forschung, die ich getan habe, nicht wieder auftauchen wirklich keine Ergebnisse, die ich so verstehen könnte jemand bitte Erklären Sie, was hier passiert und wie Sie diese Fehler beheben können.

+0

Mögliche doppelte verwenden soll [Another UnboundLocalError in Python2.7] (https://stackoverflow.com/questions/36772622/another-unboundlocalerror-in-python2-7) – ppperry

Antwort

0

sicne Sie Erkannt innerhalb der Funktion zuweisen, die sie zwingt, eine lokale Variable zu sein, und Sie müssen nun explizit global deklarieren, wenn es um die globale Variable

von
def Scan(): 
    global Detected 
    ... 
Verwandte Themen