python - 错误提示“分配前引用了局部变量‘时间’”,但我没有使用名为时间的变量
问题描述
我正在尝试运行代码,但 Python 告诉我local variable 'time' referenced before assignment
. 这是代码:
from enlace import *
from time import time
import numpy as np
imageW = "./img/transmission_receive.png"
def process_time(time, unit):
units={"ms":1e3, "μs": 1e6, "ns":1e9}
return units.get(unit)*time, unit
def main():
try:
door="COM6"
com2 = enlace(door)
com2.enable()
start_time = time()
img_size_b, nRx = com2.getData(4)
img_size=int.from_bytes(img_size_b, 'big')
rxBuffer, nRx = com2.getData(img_size)
time_to_receive=time() - start_time
time, unit=process_time(time_to_receive, 'ms')
answer=nRx.to_bytes(4, 'big')
com2.sendData(answer)
with open(imageW, 'wb') as f:
f.write(rxBuffer)
print("-------------------------\nMessage sent.\n-------------------------")
print(f"Program took {time} {unit} to receive.")
print(f"Message received at {size/time_to_receive} bytes/s.")
except Exception as e:
print(e)
com2.disable()
if __name__ == "__main__":
main()
现在给我带来麻烦的特定行是start_time = time()
Python 所说的那一行local variable 'time' referenced before assignment
,我不明白,因为我正在创建start_time
使用库中time()
函数的变量time
。
Traceback (most recent call last):
File "d:\Insper\CamFis\Projeto 2\server.py", line 46, in <module>
main()
File "d:\Insper\CamFis\Projeto 2\server.py", line 19, in main
start_time = time()
UnboundLocalError: local variable 'time' referenced before assignment
解决方案
我认为您的问题是您正在使用 time.time() 函数和一个名为 time 的变量。在 python 中,函数是一流的对象。意味着 time.time() 的处理方式与您的可变时间类似。time.time() 然后被您的可变时间覆盖。在 python 控制台中试试这个:
>>> from time import time
>>> time
>>> time()
>>> time = time()
>>> time
>>> time()
应该通过重命名变量时间或导入 time.time()from time import time as gettime()
或类似的东西来解决问题。
推荐阅读
- laravel - 如何制作像 markAsRead 这样可用于 laravel 通知的方法
- java - 在多模块maven项目中查找未解决的maven依赖项
- sql - 对多个 LIKE 字符串进行分组
- python - 基于多个条件的跨列聚合
- python - 迭代具有相同结构的熊猫数据帧的dict的最佳方法,以生成一个包含每个(行,列)元素总和的数据帧?
- javascript - 查找字符串中的最高小数位数
- linq - Linq 根据公共字段将子实体附加到父实体
- here-api - 了解 HERE API 中的几何响应
- php - 带有 PHP 实例的 SQL AES_Encrypt col
- azure - 备份 Azure WAF 资源配置/设置的方法