相关疑难解决方法(0)

我应该在一个文件中放多少个类?

我已经习惯了Java模型,你可以在每个文件中拥有一个公共类.Python没有这个限制,我想知道组织类的最佳实践是什么.

python class

265
推荐指数
6
解决办法
9万
查看次数

组织我的Python项目

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

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

提前致谢

python project-organization

44
推荐指数
4
解决办法
2万
查看次数

你如何组织Python模块?

在组织python模块时,我的Mac OS X系统很乱.我在我的硬盘上到处都是软件包,没有特定的系统来组织它们.

你如何保持一切可管理?

python module

14
推荐指数
3
解决办法
6354
查看次数

动态加载Python模块

我正在尝试动态加载我创建的模块.

现在这可以正常工作:

import structures.index
Run Code Online (Sandbox Code Playgroud)

但如果我通过动态导入它来尝试同样的事情,它就会失败.

struct = __import__("structures.index")
Run Code Online (Sandbox Code Playgroud)

提供的错误是:

Error ('No module named structures.index',)
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?


编辑:使用完整范围时(它有用吗?):

struct = __import__("neoform.structures.index")
Run Code Online (Sandbox Code Playgroud)

这不会引发任何错误,但是,它没有加载索引模块,而是加载"neoform"模块.

"struct"的结果是:

<module 'neoform' from '/neoform/__init__.py'>
Run Code Online (Sandbox Code Playgroud)

另外,作为一个附带问题,我如何在动态加载的模块中实例化一个类?(假设所有模块都包含一个公共类名).

编辑:解决方案:(感谢coonj和Rick)这最终成功了.不知道为什么(还),但fromlist必须是"任何东西显然,因为当我把字母"a"作为一个值时它起作用(奇怪的是,假设文件中只有1个类).

def get_struct_module(self, name):
    try:
        return = __import__("neoform.structures." + name, fromlist='*')
    except ImportError, e:
        self.out.add("Could not load struct: neoform.structure." + name + "\n\n" + "Error " + str(e.args))
Run Code Online (Sandbox Code Playgroud)

python module loading dynamic

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

python ×4

module ×2

class ×1

dynamic ×1

loading ×1

project-organization ×1