我正在尝试使用如下所示的for循环:
addresses = [0x30, 0x31, 0x32, 0x33]
for address in addresses:
print(address)
chirp = chirp.Chirp(address=address,
read_moist=True,
read_temp=True,
read_light=True,
min_moist=False,
max_moist=False,
temp_scale='farenheit',
temp_offset=0)
chirp.trigger()
log_values(address, chirp.moist, chirp.temp, chirp.light)
time.sleep(1)
似乎在控制台的第一遍工作正常,我看到48,然后是49,然后出现此错误:
Traceback (most recent call last):
File "readings_logger.py", line 17, in <module>
chirp = chirp.Chirp(address=address,
AttributeError: 'Chirp' object has no attribute 'Chirp'
我认为这表明它运行了一次。然后在第二遍无法运行它。我的第一个想法是局部变量问题,因此尝试删除“ chirp”小写字母“ c”,但这无济于事。我的猜测是此线程,但我是python的新手,不确定如何防止这种情况。
答案 0 :(得分:-1)
将chi设置为chirp.Chirp(...)
时,您将重新分配chi。
尝试将变量分配(在print(address)
之后更改为loop_chirp = chirp.Chirp(...)
之类。随后的每一行现在都将更改为loop_chirp
,后跟该属性。