我的树莓派上有一个 python 脚本,我在其中声明了如下变量:
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(26,GPIO.OUT)
display = lcd_drivers.Lcd()
app_path = '/home/pi/MyApp'
API_ENDPOINT = 'https://localhost/api'
API_KEY = "XXXXYYY"
然后我有多个调用这些变量的函数,例如:
def processTag(tag):
r = requests.post(url = API_ENDPOINT)
rd = r.json()
display.lcd_clear()
display.lcd_display_string(rd['name'], 1)
GPIO.output(26,GPIO.HIGH)
以上是一个示例函数,还有其他函数引用变量。
它似乎工作得很好。但是,我想知道是否需要使用全局前缀在每个函数内定义所有这些外部变量,例如如下所示。如果需要,那将意味着对所有函数重复声明它们为全局,这似乎有点矫枉过正。
def processTag(tag):
global API_ENDPOINT
global API_KEY
global display
global GPIO
global app_path
r = requests.post(url = API_ENDPOINT)
rd = r.json()
display.lcd_clear()
display.lcd_display_string(rd['name'], 1)
GPIO.output(26,GPIO.HIGH)