Javascript 属性错误,即使代码正常工作。这有关系吗?

Javascript 属性错误,即使代码正常工作。这有关系吗?,javascript,python,attributeerror,event-stream,Javascript,Python,Attributeerror,Event Stream,我正在调用一个函数属性来更新我的Flask应用程序中while循环中的一个变量,然后向我的模板JS发送数据以更新css属性——这是更新PyTube中的进度条 我收到的“AttributeError:”函数“对象在Powershell中没有“完成百分比”属性 我的代码可以正常工作 虽然我希望遵循最佳实践并编写适当的代码,但在本例中,这是一个解决方案,因为我无法找到任何其他解决方案 作为Python和Flask的新手,我想知道这个错误是否重要,如果是,它会产生什么负面影响 功能 def on_pro

我正在调用一个函数属性来更新我的Flask应用程序中while循环中的一个变量,然后向我的模板JS发送数据以更新css属性——这是更新PyTube中的进度条

我收到的“AttributeError:”函数“对象在Powershell中没有“完成百分比”属性

我的代码可以正常工作

虽然我希望遵循最佳实践并编写适当的代码,但在本例中,这是一个解决方案,因为我无法找到任何其他解决方案

作为Python和Flask的新手,我想知道这个错误是否重要,如果是,它会产生什么负面影响

功能

def on_progress(stream, chunk, bytes_remaining):
    total_size = stream.filesize
    bytes_downloaded = total_size - bytes_remaining
    on_progress.percentage_of_completion = bytes_downloaded / total_size * 100
包含while循环的路由

@app.route('/progress')
def progress():
    def generate():

        x = 0

        while x <= 100:
            x = round(on_progress.percentage_of_completion)
            yield "data:" + str(x) + "\n\n"
            time.sleep(0.1)



    return Response(generate(), mimetype= 'text/event-stream')
模板CSS

var source = new EventSource("/progress");
source.onmessage = function(event) {
    $('.progress-bar').css('width', event.data+'%').attr('aria-valuenow', event.data);
    $('.progress-bar-label').text(event.data+'%');

    if(event.data == 100){
        source.close()
    }
}
<div class="progress" style="width: 50%; margin: 50px;">
     <div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%">
                <span class="progress-bar-label">0%</span>
     </div>
</div>

0%

您收到的错误消息很简单。进程上的
实体是一个函数,没有
完成百分比
属性

您可能要做的是更改函数,使其返回完成百分比:

def on_进度(流、块、剩余字节):
总大小=stream.filesize
下载字节数=总字节数-剩余字节数
返回下载的字节数/总大小*100
然后将其作为函数调用正确使用:

。。。

而x感谢您在这里的输入。我的on_progress函数是一个回调函数,它接受3个参数,但是这些参数是通过PyTube包传递的(我相信),因此我收到…'缺少3个必需的位置参数:“流”、“块”和“剩余字节”。当我用合适的术语解释事情时,我有点不舒服,所以我希望我说得对,这是有道理的。关于这件事的决议仍然开放!