扩展类

未匹配的标注
本文档最新版为 4.0,旧版本可能放弃维护,推荐阅读最新版!

扩展类

介绍

想要使用服务提供者向类添加新方法是很常见的。例如,您可能想向 Request 类添加is_authenticated 方法。您的包和服务提供者可能会使用更好的身份验证系统。
您可以轻松扩展从 Extendable 类继承的类。许多内置类都继承自它。

用法

您可以使用几种方法将方法添加到任何核心类中。您可以使用函数,类和类方法扩展类。典型用法如下:

def is_authenticated(self):
    return self

def show(self, request: Request):

    request.extend(is_authenticated)

    print(request.is_authenticated()) # returns the Request class

用法非常简单,并且有几个扩展类的选项。注意,我们不调用该函数,而是将引用传递给它。

扩展一个方法

这会将函数作为绑定方法添加到 Request 类中

def is_authenticated(self):
    return self

def show(self, request: Request):

    request.extend(is_authenticated)

    print(request.is_authenticated()) # returns the Request class

扩展一个类方法

我们还可以扩展类方法,该方法将采用给定的方法并将其添加为绑定方法。

class Authentication:

    def is_authenticated(self):
        return self

def show(self, request: Request):

    request.extend(Authentication.is_authenticated)

    print(request.is_authenticated()) # returns the Request class

扩展类

我们甚至可以扩展整个类,该类将获取所有类方法并为 Request 类创建绑定方法。

class Authentication:

    def is_authenticated(self):
        return self

    def login(self):
        return self

def show(self, request: Request):

    request.extend(Authentication)

    print(request.is_authenticated()) # returns the Request class
    print(request.login()) # returns the Request class

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/masonite/2.3/ad...

译文地址:https://learnku.com/docs/masonite/2.3/ad...

上一篇 下一篇
贡献者:3
讨论数量: 0
发起讨论 只看当前版本


暂无话题~