py UnboundLocalError:赋值前引用的局部变量“start\U time”

2024-06-30 07:38:46 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑。。 完全回溯:

Traceback (most recent call last):
  File "dscli.py", line 36, in <module>
    main()
  File "dscli.py", line 31, in main
    instance_StreamingDownloader.download_all()
  File "file.py", line 283, in download_all
    time_first_frame_last_segment = self.get_time_saved_segment(crrt_segment - 1)
  File "file.py", line 239, in get_time_saved_segment
    return(start_time)
UnboundLocalError: local variable 'start_time' referenced before assignment

code here

它只获取第一个段,然后返回错误

我如何解决这个问题

来自github的代码


Tags: inpygettimemaindownloadlinesegment
3条回答

如果不满足条件,则:

    Traceback (most recent call last):
  File "dscli.py", line 36, in <module>
    main()
  File "dscli.py", line 31, in main
    instance_StreamingDownloader.download_all()
  File "file.py", line 286, in download_all
    lenght_ahead_buffered = time_first_frame_last_segment - time_if_streaming + random_perturbation
TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'

第280-286行:

while continue_download:
                time_first_frame_last_segment = self.get_time_saved_segment(crrt_segment - 1)

                time_if_streaming = time.time() - init_time
                random_perturbation = random.gauss(0, self.random_time)
                if self.verbose > 1:
                    print("time in video if streaming: " + str(time_if_streaming))

答案很简单- 该条件允许在脚本运行期间未定义开始时间的某些情况 因此,由于没有定义,它失败了

start_time是在for循环中的if语句中定义的

如果不进入循环,或者不满足条件,该怎么办?函数应该返回什么

start_time需要在任何控制流子句之外的函数体中初始化(例如start_time = 0 / None / False),以便始终定义它,因此您可以始终返回它

相关问题 更多 >