You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Flask跨文件调用类方法报'int' object is not callable错误

错误原因

你在speed类的__init__初始化方法中,给实例绑定了名为download的int类型属性,同时类中又定义了同名的download()实例方法。Python类的实例命名空间中,实例属性的优先级高于类的方法,当你初始化speed()实例后,st.download指向的是你在__init__里赋值的整型下载速度值,而不是类定义的方法,对整型值加括号调用自然会抛出'int' object is not callable的错误。
同理你的upload、ping、host_info、ip都存在同名属性覆盖方法的问题。

修复方案

方案1:修改属性命名避免冲突

将实例属性统一修改为带下划线前缀的命名,和公开方法做区分,修改后的speedtester.py代码如下:

import speedtest

st = speedtest.Speedtest()

class speed:
    def __init__(self):
        st.get_servers()
        best = st.get_best_server()
        speed_dict = st.results.dict()
        self._download = speed_dict['download'] #/1024/1024:.2f
        self._upload = speed_dict['upload']
        self._ping = speed_dict['ping']
        self._host_info = f"{best['host']} located in {best['country']}"
        self._ip = speed_dict['client']['ip']

    def download(self):
        return f"Download speed is {self._download}"
    def upload(self):
        return self._upload
    def ping(self):
        return self._ping
    def host_info(self):
        return self._host_info
    def ip(self):
        return self._ip

原有app.py的调用逻辑不需要修改即可正常运行。

方案2:删除冗余getter方法直接访问属性

如果不需要对返回值做额外的格式封装,完全可以删掉所有同名的getter方法,直接访问实例属性取值,代码更简洁:

  1. 修改speedtester.py删掉类里的所有方法,只保留__init__初始化逻辑:
import speedtest

st = speedtest.Speedtest()

class speed:
    def __init__(self):
        st.get_servers()
        best = st.get_best_server()
        speed_dict = st.results.dict()
        self.download = speed_dict['download'] #/1024/1024:.2f
        self.upload = speed_dict['upload']
        self.ping = speed_dict['ping']
        self.host_info = f"{best['host']} located in {best['country']}"
        self.ip = speed_dict['client']['ip']
  1. 修改app.py的调用逻辑,去掉方法调用的括号:
from src.speedtester import speed
from flask import *

@app.route("/speedtest")
def speedtesting():
    st = speed()
    # 直接访问属性,不需要加括号
    return f"Download speed is {st.download}"

内容的提问来源于stack exchange,提问作者Dheeraj-Tech

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:54:04