我看过很多网站和许多相关的问题,但遵循这些问题的解决方案似乎还是没有帮助。我想也许我错过了什么,所以就这样。在
我的项目是创建一个DM的工具来管理桌面角色扮演游戏。我需要能够把我的项目分割成许多不同的文件,以保持一切井井有条。(到目前为止)我只想处理三个文件。我有一个名为dmtool.py3
的主文件,有一个名为classdef.py3
的类定义文件,还有一个用于创建race对象的文件races.py3
。在
1]我的第一个问题是关于导入单个文件。我尝试过用几种不同的方式组织文件,因此假设我的三个文件都在同一个目录中。在
如果我想从类定义.py3进入我的主文件dmtool.py3型,我该怎么做?^{{cd5}似乎不能正常工作。在
2]于是我制作了一个模块,它似乎可以工作。我通过创建一个名为defs
的子目录并将类定义.py3以及种族.py3把文件放进去。我创建了__init__.py3
文件,并将import defs
放入dmtool.py3
。作为测试,我把x = 1
放在races.py3
的最顶端,并把print("X =", defs.x)
放在dmtool.py3
中。我得到一个错误,说模块没有属性x
所以我想我的第二个问题是是否可以只使用其他文件中的变量。我会使用defs.x
或defs.races.x
或{x
?我好像找不到一个有效的。我需要弄清楚这一点,因为我将使用在races.py3
文件中定义的类的特定实例。在
3]我的第三个问题是前两个问题衍生出来的一个简单问题。既然races.py3
和classdef.py3
在同一个模块中,我如何使其中一个访问另一个模块。races.py3
必须使用classdef.py3
中定义的类。在
我真的很感激你的帮助。就像我说的,我试着查找其他与进口有关的问题,但他们简单的解决方法似乎也出现了同样的错误。我没有发布我的具体文件,因为除了我提到的,只有非常简单的打印行或类定义。不会影响进口。在
谢谢, 克里斯
首先,不要使用
.py3
作为文件扩展名。Python无法识别它。在Python3的导入系统实际上非常简单。
import foo
在sys.path
中查找名为foo的包(目录)或模块(.py
文件)。在sys.path
包含各种通常安装库的标准目录,以及Python标准库。sys.path
的第一个条目通常是__main__
脚本所在的目录。如果您将Python作为python -m foo.bar
调用,那么第一个条目将是包含foo
包的目录。在相对导入使用不同的语法:
这意味着“从包含当前模块的包中导入
foo
模块或包。”这在PEP 328中有详细讨论,如果您不想为每次导入指定包的整个结构,那么它可能会很有用。在启动python并键入以下命令:
路径是python查找库的目录列表。如果您的模块不在列表中,则找不到任何模块。在
相关问题 更多 >
编程相关推荐