"部分初始化模块(循环导入)",并在两个文件中使用必要的导入变量。

问题描述 投票:0回答:1

在我的 imp_main.py 中,我从 imp_sub.py 中的 Charakter 类中创建了两个 Charakters (char_01, char_03)。

在imp_main.py中,我创建了一个 "current "变量来帮助查找当前 "选中 "的角色对象(例如char_01或char_03).我将current设置为 "char_01 "来选中char_01作为当前角色。

我在Charakter类中有一个名为 "look "的方法,它可以在当前选中的对象(在我的例子中是 "char_01")中寻找 "test "属性。为了使用正确的对象,我使用了eval函数(eval(imp_main.current).test)。

imp_sub.py:

import Testing.imp_main as imp_main


class Charakter:
    def __init__(self, test = False):
        self.test = test
    def look():
        if not eval(imp_main.current).test:
            print("Test False")
        else:
            print("Test True")

imp_main.py:

import Testing.imp_sub as imp_sub

current = "char_01"

char_01 = imp_sub.Charakter(True)
char_03 = imp_sub.Charakter(False)
imp_sub.Charakter.look()

我得到以下错误信息。AttributeError: 部分初始化的模块 'Testing.imp_sub' 没有属性 'Charakter' (很可能是由于循环导入)

写成一个文件就可以了。不把imp_main导入imp_sub也一样。但是如果没有这个导入,我就不能使用和编辑 "当前 "变量--这就是为什么我必须 "循环导入 "的原因,对吗?

我想我可能做了一个 基本 使用classimport的错误 - 但我就是想不通。

python python-3.x import object-oriented-analysis
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.