即使代码有效,也会出现属性错误有关系吗?

如何解决即使代码有效,也会出现属性错误有关系吗?

我正在调用函数属性以在Flask应用程序的while循环中更新变量,然后将响应中的数据发送至模板JS以更新css属性-这是在PyTube中更新进度条。 / p>

我在Powershell中收到'AttributeError:'function'对象没有属性'完成百分比'。

我的代码有效并且有效。

尽管我想遵循最佳实践并编写正确的代码,但在这种情况下,由于我找不到其他解决方案,因此可以解决此问题。

作为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')

模板JS

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

模板CSS

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

解决方法

您收到的错误消息很简单。 on_progress实体是一个函数,没有percentage_of_completion属性。

您可能想要做的就是更改功能,以使其返回完成百分比:

def on_progress(stream,chunk,bytes_remaining):
    total_size = stream.filesize
    bytes_downloaded = total_size - bytes_remaining
    
    return bytes_downloaded / total_size * 100

然后正确使用它作为函数调用:

...
    while x <= 100:
        x = round(on_progress())
...

请注意,我还没有阅读您的其余代码,您可能还有其他一些我没有考虑的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?