Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python py unbundLocalError:局部变量';开始时间';分配前参考_Python - Fatal编程技术网

Python py unbundLocalError:局部变量';开始时间';分配前参考

Python py unbundLocalError:局部变量';开始时间';分配前参考,python,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_fram

编辑。。 完全回溯:

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
回溯(最近一次呼叫最后一次):
文件“dscli.py”,第36行,在
main()
文件“dscli.py”,第31行,主
实例\u StreamingDownloader.download\u all()
文件“File.py”,第283行,全部下载
时间\第一帧\最后一段\段=自身。获取\时间\保存\段(crrt \段-1)
文件“File.py”,第239行,在get_time_saved_段中
返回(开始时间)
UnboundLocalError:分配前引用的局部变量“开始时间”

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

我如何解决这个问题


来自

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

启动时间
if
语句中定义,该语句位于
for
循环中

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


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

当不满足条件时:

    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'

如果
行[0:14]=“ID\u start\u time=”
为假,那么什么是
start\u time
呢?这里没有足够的信息让某人真正回答你的问题。首先,试着添加完整的回溯。请用更好的上下文提问-没有语法突出显示的屏幕截图是相当石器时代的
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))