栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Bottle方法框架和OOP,使用方法代替函数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Bottle方法框架和OOP,使用方法代替函数

您的代码不起作用,因为您尝试路由到非绑定方法。非绑定方法没有对的引用

self
,如果
App
尚未创建的实例,怎么办?

如果要路由到类方法,则首先必须初始化类,然后再初始化

bottle.route()
到该对象上的方法,如下所示:

import bottleclass App(object):    def __init__(self,param):        self.param   = param    def index1(self):        return("I'm 1 | self.param = %s" % self.param)myapp = App(param='some param')bottle.route("/1")(myapp.index1)

如果要在处理程序附近添加路由定义,可以执行以下操作:

def routeapp(obj):    for kw in dir(app):        attr = getattr(app, kw)        if hasattr(attr, 'route'): bottle.route(attr.route)(attr)class App(object):    def __init__(self, config):        self.config = config    def index(self):        pass    index.route = '/index/'app = App({'config':1})routeapp(app)

不要做中的

bottle.route()
部分
App.__init__()
,因为您将不能创建两个
App
类的实例。

如果您比装饰属性更喜欢装饰器的语法

index.route=
,可以编写一个简单的装饰器:

def methodroute(route):    def decorator(f):        f.route = route        return f    return decoratorclass App(object):    @methodroute('/index/')    def index(self):        pass


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624412.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号