您的位置:

解决方案:flask self.Custom()

  发布时间:2023-02-16 20:47:46
如何解决要解决这个问题,可以在类中定义 `Custom()` 方法或者在类外面实例化一个对象并调用对象的custom()方法或者你可能是引入错误的包或类导致定义的调用的类或方法不存在. 检查导入的包的名字或者类的名字是否正确,并且是否在正确的位置。使用例子当然,这是一个使用 Flask 框架的简单示例在这个示例中,我们定义了一个名为 MyFlask 的类,这个类有一个 custom_method 和 route_method 两个方法。route_method方法中调用了 custom_method,然后我们在`main`中实例化了一个MyFlask对象并在route上挂载了route_method 方法。

报错的原因

`self.Custom()` 是在一个类中的一个实例方法调用另一个实例方法。在 Python 中,类中的实例方法默认接收一个参数 `self`,这个参数是该类的实例本身。所以在类的一个方法里调用另一个方法时,要加上self.

若你没有显示定义这个方法, 那么这个代码可能会导致错误,因为类中没有定义这个方法。

如何解决

要解决这个问题,可以在类中定义 `Custom()` 方法。


class MyClass:
    def custom_method(self):
        # do something
    
    def another_method(self):
        self.custom_method()

或者在类外面实例化一个对象并调用对象的custom()方法。


class MyClass:
    def another_method(self):
        custom_obj = Custom()
        custom_obj.custom()

或者你可能是引入错误的包或类导致定义的调用的类或方法不存在.

检查导入的包的名字或者类的名字是否正确,并且是否在正确的位置。

使用例子

当然,这是一个使用 Flask 框架的简单示例:


from flask import Flask
app = Flask(__name__)

class MyFlask:
    def custom_method(self):
        print("This is custom method")
    
    def route_method(self):
        self.custom_method()
        return "Hello World!"
        
my_flask = MyFlask()
app.route('/')(my_flask.route_method)

if __name__ == "__main__":
    app.run()

在这个示例中,我们定义了一个名为 MyFlask 的类,这个类有一个 custom_method 和 route_method 两个方法。route_method方法中调用了 custom_method,然后我们在`main`中实例化了一个MyFlask对象并在route上挂载了route_method 方法。

这里的访问地址为"http://localhost:5000/" 就可以看到输出了 “This is custom method”,并返回 "Hello World!"

你可以尝试把 custom_method 函数注释掉,你会发现程序会抛出异常,因为调用了未定义的函数。