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))