从python文件夹导入类

2024-10-06 16:15:05 发布

您现在位置:Python中文网/ 问答频道 /正文

请不要立即将此标记为重复的问题,因为我已经用相同的想法浏览了大量过去的问题,但我不理解任何答案-它们最多是零碎的,需要在文件夹中创建一个名为init.py的文件,我想?我不确定

所以我的具体问题是:我正试图为21点编写一个程序。我已经创建了一个类来在单独的文件中创建卡片组。我把所有的东西都放在同一个文件夹里,叫做“类”。在此文件夹中,有: -一个名为_init.py的文件(为空,因为我不知道它应该做什么) -一个名为playingcardslasses.py的文件,包含卡片和卡片组的类 -一个名为blackjack.py的文件,这是我编写主程序的地方。 我正在使用Pycharm,它立即抛出了一个回溯,但仍然按照我想要的方式运行代码——所以我不知道它为什么会崩溃。 我的代码的第一行是:

    from playingcardsclasses.py import Deck

追踪显示:

回溯(最近一次呼叫最后一次): 文件“(directory)/classes/blackjack.py”,第1行,在 从playingcardsclasses.py导入组 ModuleNotFoundError:没有名为“playingcardsclasses.py”的模块playingcardsclasses’不是一个软件包

然后继续愉快地运行我的其余代码,然后以

进程已完成,退出代码为1

消息-即,此处存在问题,因此进行了回溯


Tags: 文件答案代码py标记程序文件夹init
1条回答
网友
1楼 · 发布于 2024-10-06 16:15:05

首先,在classes目录中__init__.py文件的语法不正确。它应该是__init__.py,而不是__init.py

在目录中使用__init__.py文件的原因是告诉python应该将该目录视为一个包。也就是说,可以从此目录导入其他.py文件。(见here

在本例中,由于playingcardsclasses.py文件包含两个类CardDeck,因此可以从另一个文件导入它们。假设您位于同一目录中名为my_file.py的另一个文件中。如果要从playingcardsclasses.py导入Deck类,可以使用:

from .playingcardsclasses import Deck

请注意,在导入时不应使用尾随.py,这是您在代码块中犯的错误

编辑:还要注意导入中的前导.。这只是指定文件playingcardsclasses.py位于同一目录中

相关问题 更多 >