我知道这个话题已经讨论过,但是我的问题有点不同:
我在Raspberry Pi上运行Adeept入门套件(Raspberry Pi版本)的代码。我正在学习控制LCD1602的第9课。但是,当我运行代码时,我收到一条错误消息:
Traceback (most recent call last):
File "/home/pi/Desktop/Adeept_Starter_Kit_for_RPi3_V2.0/code/Starter_Kit_Python_Code_for_RPi/09_lcd1602.py", line 11, in <module>
class Adafruit_CharLCD:
File "/home/pi/Desktop/Adeept_Starter_Kit_for_RPi3_V2.0/code/Starter_Kit_Python_Code_for_RPi/09_lcd1602.py", line 62, in Adafruit_CharLCD
self.GPIO = GPIO
NameError: name 'self' is not defined
这是它很奇怪的代码片段:
def __init__(self, pin_rs=14, pin_e=15, pins_db=[17, 18, 27, 22], GPIO = None):
if not GPIO:
import RPi.GPIO as GPIO
self.GPIO = GPIO
self.pin_rs = pin_rs
self.pin_e = pin_e
self.pins_db = pins_db
self.GPIO.setmode(GPIO.BCM)
self.GPIO.setup(self.pin_e, GPIO.OUT)
self.GPIO.setup(self.pin_rs, GPIO.OUT)
您可以查看完整的代码文件at this link
感谢您的时间!
答案 0 :(得分:0)
您的缩进已关闭。实际上,只有if
语句在__init__
内部,其余语句没有缩进,因此被理解为无关的顶级(或类定义级)代码。顶层代码不包含self
的绑定,因此会出现错误。