gpt4 book ai didi

Python嵌套包问题

转载 作者:太空宇宙 更新时间:2023-11-04 09:15:49 25 4
gpt4 key购买 nike

我一直在努力解决这个问题,我一定是遗漏了一些基本的东西(原谅我,我是 Python 开发的新手):

我有一个这样的包结构:

base
|
-->util
__init__.py
Class1.py
Class2.py
__init__.py
Main.py

我的类(class)相当温和:

class Class1(object):

def __init__(self):

# some methods...


class Class2(object):

def __init__(self):

# more methods...

Main.py 中,我有:

import utils

if __name__ == '__main__':
c1 = utils.Class1()
c2 = utils.Class2()

我的 PYTHONPATH 设置为包括 srcsrc\basesrc\base\utils。但是,Python 在尝试运行 Main.py 时给我这个错误:

AttributeError: 'module' object has no attribute 'Class1'

有没有人遇到过这个,你知道如何解决吗?谢谢!

最佳答案

这与 Java 略有不同。在java中每个文件通常是一个类,在python中,每个文件是一个模块。鉴于您在此处描述的场景,您将执行以下操作:

import utils.Class1
import utils.Class2

if __name__ == '__main__':
c1 = utils.Class1.Class1()
c2 = utils.Class2.Class2()

您可以在这里做很多事情。例如,您可以有一个名为“资源”的模块,如下所示:

base ->
utils ->
resources.py

其中包含 Class1 和 Class2。然后你可以这样做:

import utils.resources


c1 = utils.resources.Class1()

等但关键是 classes != python 中的文件

关于Python嵌套包问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9507896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com