gpt4 book ai didi

python - 在类里面使用带有 self 的装饰器

转载 作者:太空宇宙 更新时间:2023-11-03 14:35:15 25 4
gpt4 key购买 nike

我是一名学生,我想通过一个带有 Bottle 微框架的小网站来练习 MVC 和 OOP。

所以我的 Controller 实例化一个 Bottle 对象,并将其发送到我的模型。我的模型需要使用 Bottle 类的“route”装饰器来定义路由(例如 @app.route("/blog"))。

但看起来我无法在类中使用装饰器,因为 self 不存在于方法之外。

那么我怎样才能在 MVC 和 OOP 方法中做到这一点呢?即我想避免在类之外实例化 Bottle 并将其用作全局变量。

谢谢。

#!/usr/bin/env python
#-*-coding:utf8-*-

from bottle import Bottle, run




class Model():
def __init__(self, app):
self.app = app


@self.app.route("/hello") ### dont work because self dont exist here
def hello(self):
return "hello world!"


class View():
pass


class Controller():
def __init__(self):
self.app = Bottle()
self.model=Model(self.app)



if __name__ == "__main__":
run(host="localhost", port="8080", debug=True)

最佳答案

一种方法:

class Model(object):
def __init__(self, app):
self.app = app
self.hello = self.app.route("/hello")(self.hello)

def hello(self):
return "hello world!"

关于python - 在类里面使用带有 self 的装饰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46996393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com