2

我正在使用 Raspberry pi 上的 GPIO 来驱动 4 位 7 段显示器。显示是多路复用的并while True:循环运行。

我希望能够提示用户输入一个新的 4 位数字来更新显示。我尝试使用线程,但更新显示的线程无法识别更改的变量。

这是我认为可行的示例:

number = "0000" #used in drive_display() but can be updated in prompt()

def drive_display():
  while True:
    changeDigit(number[0],Digit1)
    time.Sleep(0.006)
    changeDigit(number[1],Digit2)
    time.Sleep(0.006)
    changeDigit(number[2],Digit3)
    time.Sleep(0.006)
    changeDigit(number[3],Digit4)
    time.Sleep(0.006)

threading.Thread(target=drive_display).start()

def prompt():
  number = input("new 4 digit number: ") 
  prompt()

prompt()
4

1 回答 1

2

您必须global在线程函数中使用它才能工作:

def prompt():
  global number
  number = raw_input("new 4 digit number: ") 
  prompt()

从文档中:

没有分配给全局变量是不可能的global

于 2013-04-01T19:35:31.187 回答