免责声明:我已经搜索了几天,但运气不佳。尽管如此,如果某处已经有了答案,我将不胜感激任何人指出我的答案。
我一直在研究 RPi.GPIO 和 python(目前是 3.6),但是在设置一些属性时遇到了一个小障碍。我一直在尝试找到一种使用用户输入来设置属性的方法,大致如下:
mode = input("Enter preferred mode (BCM/BOARD): ").upper()
mode_chosen = "GPIO." + mode
setattr(GPIO, "setmode", mode_chosen)
显然,上面的代码将属性设置为GPIO.BCM
或GPIO.BOARD
作为字符串,这当然是行不通的。我可以编写一个 if-else 循环来调用 GPIO.setmode(GPIO.whatever)
,具体取决于用户输入,但我想知道是否有更优雅的方法。
我对 python 比较陌生,所以我很可能在这里遗漏了一些重要信息,所以......提前感谢任何花时间回答的人。
最佳答案
一种方法是使用字典:
choices = { "BCM": GPIO.BCM, "BOARD": GPIO.BOARD }
mode_chosen = choices[mode]
关于python - 使用用户输入来设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49474217/