您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

将python模块拆分为子模块的正确方法是什么?

5b51 2022/1/14 8:20:25 python 字数 3922 阅读 451 来源 www.jb51.cc/python

我在 python中的gitlab API库中工作.它最初是作为一个宠物项目来了解更多有关模块的内容,因此我在开始时没有考虑它,并开始在模块目录中的__init__.py中编写所有代码. 当然,现在已经增长了,我可以看到组织很差,一个类有很多方法,测试变得困难,检查代码很混乱,因为那里有很多. 所以我想把它分成几个子模块,你知道X import Y的代码,所以代码更易读,可测试,更小但是我发现我完

概述

当然,现在已经增长了,我可以看到组织很差,一个类有很多方法,测试变得困难,检查代码很混乱,因为那里有很多.

所以我想把它分成几个子模块,你知道X import Y的代码,所以代码更易读,可测试,更小但是我发现我完全不知道如何实现它,因为我有很多共享变量和所有使用类变量的所有方法一样在整个类….

那么,有没有关于用“子模块”创建python模块的好文档?如何在类之间共享对象变量?例如,我应该检查哪些明确的模块有一个子模块的登录和其他子模块的功能

干杯!

根据您所描述的内容,您需要立即停止使用存储在类中的数据并开始使用成员函数进行访问.

class A(object):
    def __init__(self,value):
        self.value = value

a = A(1)
print a.value
a.value = 5
print a.value

看看我如何直接修改值?这可能导致代码中的各种假设.使用方法检索值并进行更改最好.注意,没有头脑的getFoo / setFoo也不好.尝试让你的方法暴露行为而不是扭曲的旋钮.

class A(object):
    def __init__(self,value):
        self.value = value

    def is_safe(self):
        if value > 10:
            return False
        return True

    def increase_value(self,increment):
        if increment <= 0:
            raise ValueError("only positive increments are allowed")
        self.value += increment

看看逻辑是如何自包含的?我们从不希望A的实例变小,所以我们只允许增量并命名函数增加来指示这一点. setValue不告诉什么或为什么.

对于模块和子模块,将事物组合在一起. “匹配”基于您自己的代码需求.所有的用户功能?所有数据库功能?将内容放入模块中可以使用相同的公开API插入不同的模块.从sql DB或本地文本文件中考虑身份验证.

总结

以上是编程之家为你收集整理的将python模块拆分为子模块的正确方法是什么?全部内容,希望文章能够帮你解决将python模块拆分为子模块的正确方法是什么?所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶