导入时无法识别类属性

2024-04-24 13:35:38 发布

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

我遇到了一个问题,导入的类无法识别它自己的一些属性。下面介绍中的类字符串管理器.py你知道吗

    class String_Manager:
        def __init__(self):
            self.jsonformat = None
            self.createjsonformat()


        def createjsonformat(self)
            with open("formatefile.json") as f:
                self.jsonformat = json.load(f)
            self.jsonformat["Server"] = "Server"
            self.jsonformat["Payload"] = "Payload"
            return copy.deepcopy(self.jsonformat)

    stringManager = String_Manager()

在其他地方,将导入stringManager

    from stringmanager import stringManager
    uploadtype = stringManager.jsonformat

但是我得到了一个错误: AttributeError:'String\u Manager'对象没有属性'jsonformat'。我看过的其他例子将此归因于tab和空格混合的不当继承。然而,我正在使用的这个代码库没有使用父类,并且遵循PEP8标准,因此没有制表符/空格组合。从另一个python文件导入对象时是否需要遵循其他过程?你知道吗


Tags: 对象字符串selfjson管理器string属性server
1条回答
网友
1楼 · 发布于 2024-04-24 13:35:38

因为类的jsonformat属性是在__init__函数上创建的,所以它只存在于类的初始化实例上,而不是纯类对象上。你需要做uploadtype = String_Manager().jsonformat才能让它工作。你知道吗

EDIT:已经正确指出OP试图导入实例本身,在这种情况下,我的答案并不适用。但是,我还不能重现这个问题,尽管原始代码有一个问题,即jsonformat应该被定义为字典而不是无字典,否则createjsonformat方法将失败。你知道吗

相关问题 更多 >