当前位置:  开发笔记 > 编程语言 > 正文

组织我的Python项目

如何解决《组织我的Python项目》经验,为你挑选了4个好方法。

我正在开始一个Python项目,并期望它有20个或更多的类.作为一种好的做法,我想将它们分别放在一个单独的文件中.但是,项目目录很快就会被文件淹没(或者当我这样做时).

如果我在文件夹中放入要导入的文件,我就无法再导入它.如何从另一个文件夹导入文件,我是否需要引用它所包含的类,因为它在文件夹中?

提前致谢



1> Triptych..:

__init__.py在您的项目文件夹中创建一个文件,它将被视为Python的模块.

然后可以使用以下语法导入包目录中的类:

from package import class
import package.class

在其中__init__.py,您可以创建一个__all__定义from package import *行为的数组:

# name1 and name2 will be available in calling module's namespace 
# when using "from package import *" syntax
__all__ = ['name1', 'name2'] 

这里有更多的信息比你甚至想知道Python中的包更多

一般来说,了解如何组织大量代码的好方法是选择一个流行的Python包,看看他们是如何做到的.对于初学者,我会查看Django和Twisted.



2> S.Lott..:

"按照良好做法,我希望将它们分别放在一个单独的文件中."

这实际上不是一个很好的做法.您应该设计包含密切相关类的模块.

实际上,没有一个班级完全独立.通常,类存在于逻辑上相关的集群或组中.


我一直觉得每个文件一类是Java语言的错误.一个善意的,也许,但仍然.
@Ben Blank:当你有一个非常复杂的语言和一个非常慢的编译器时,每个文件有一个公共类.如果您简化语言,您可以获得更快的编译器,而且您不需要那种管理黑客.

3> Benjamin Pet..:

Python不会强迫你进入Java令人讨厌的一类文件样式.实际上,除非它们很大,否则将每个类放在单独的文件中甚至不被认为是好的风格.(如果它们很大,你可能还是必须进行重构.)相反,你应该在模块中对类似的类和函数进行分组.例如,如果您正在编写GUI计算器,则包布局可能如下所示:

/amazingcalc
   /__init__.py # This makes it a Python package and importable.
   /evaluate.py # Contains the code to actually do calculations.
   /main.py # Starts the application
   /ui.py # Contains the code to make a pretty interface


@Teifion:很大?如果一个类是"大"(即数百行代码),它可能做得太多了.好的做法是将这么大的类分解成更容易理解的东西.与使用许多文件无关.

4> fuentesjr..:

简单的答案是创建一个__init__.py在您创建的新文件夹中调用的空文件.然后在您的顶级.py文件中包含以下内容:

import mynewsubfolder.mynewclass

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有