首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >[Python][ PyLint ]太多的实例属性,这个资源写得正确吗?

[Python][ PyLint ]太多的实例属性,这个资源写得正确吗?
EN

Stack Overflow用户
提问于 2021-11-25 11:17:59
回答 1查看 667关注 0票数 0

我正在使用Flask用Python编写一个应用程序,现在在为端点创建资源类的过程中,我得到了Pylint‘太多-多实例-属性’警告。现在我不知道我所做的是否是一种“正确”的编写参考资料的方法。

我将依赖项注入到资源中,如下所示:

代码语言:javascript
运行
复制
api.add_resource(TicketsQuery, '/tickets/query',
             '/ticket/query/<int:ticketID>',
             resource_class_kwargs={'cleaner': Cleaner(StrategyResponseTickets()),
                                    'machine_cleaner': Cleaner(StrategyResponseMachines()),
                                    'db': soap_caller,
                                    'cache': cache,
                                    'field_map': app.config['FIELD_FILTER_MAP']['TICKETS'],
                                    'endpoint_permission': TicketsQueryPermission
                                    })

然后在“资源”中显示为kwargs论点。我还装饰了init中的函数,因为我需要类中的一个变量(来完成装饰本身)。

代码语言:javascript
运行
复制
class TicketsQuery(Resource):
def __init__(self, **kwargs):
    # Dependencies
    self.cleaner = kwargs['cleaner']
    self.machine_cleaner = kwargs['machine_cleaner']
    self.db = kwargs['db']
    self.cache = kwargs['cache']
    self.field_map = kwargs['field_map']
    self.endpoint_permission = kwargs['endpoint_permission']

    # Permissions of endpoint method calls, implemented using wrapper
    self.get = authorization_required(self.endpoint_permission, UserType.GENERIC_EMPLOYEE)(self.get)
    self.post = authorization_required(self.endpoint_permission, UserType.GENERIC_EMPLOYEE)(self.post)

def get(self, permission_set: TicketsPermissionSet, ticketID=-1):

这是用烧瓶编写参考资料的正确方法吗?还是有一个更好的结构可依循?任何洞察力或技巧都将受到赞赏!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-25 12:06:05

不要因为林特的警告而气馁~这是为了提醒你坚持一种特定的风格。如果在项目的根文件夹中还没有一个.pylintrc,那么linter将使用默认规则;这只是一种对“例如变量太多”的样式警告--即太多的self.*--这是一个100%的self.*,与烧瓶无关。

您可以取消对此的警告,但通过在类的# pylint: disable=too-many-instance-attributes上添加注释def __init__(...):来使其对任何其他人保持活动状态。

如果您想要一种更灵活的方法来解决这个问题,请在项目的根文件夹中运行pylint --generate-rcfile (假设您已经使用了pip install pylintd并且这些消息不只是来自pip install pylint)来生成.pylintrc

在这里,您可以将错误的代码R0902添加到disable=列表~即disable=R0902,或者如果禁用多个警告(这些警告接受全局,那么只需禁用所有R*消息,那么最好只在确定知道要关闭哪些警告时才能这样做)。,您可以在[DESIGN]下找到一行max-attributes=,并将该数字设置/增加到您认为更合理的更高的值。

作为参考,如果您想进一步探索~ 下面是从pylint中可以得到的警告列表,您可以通过错误too-many-instance-attributes的名称或其代码R0902搜索该信息的参考资源,以及这是一个样品,您可以通过代码(即R0902 )来查找影响该警告的属性。

最后,这里还有另一篇关于相同的pylint错误消息的文章,如果您想要更多的例子~ 如何处理Pylint的“太多实例-属性”消息?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70110163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档