Sedond Pass上的Python For Loop错误

时间:2018-10-15 01:50:49

标签: python

我正在尝试使用如下所示的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的新手,不确定如何防止这种情况。

1 个答案:

答案 0 :(得分:-1)

将chi设置为chirp.Chirp(...)时,您将重新分配chi。

尝试将变量分配(在print(address)之后更改为loop_chirp = chirp.Chirp(...)之类。随后的每一行现在都将更改为loop_chirp,后跟该属性。