导入时无法识别的类属性

时间:2014-06-19 16:59:56

标签: python class import

我遇到了一个问题,导入的类无法识别它自己的某些属性。以下描述了stringmanager.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_Manager'对象没有属性'jsonformat'。我看过的其他例子将这归因于标签和空格混合的不正确继承。但我正在使用的这个代码库不使用父类并遵守PEP8标准,因此没有选项卡/空格组合。从另一个python文件导入对象时是否需要遵循任何其他过程?

1 个答案:

答案 0 :(得分:1)

由于类的jsonformat属性是在__init__函数上创建的,因此它只存在于类的初始化实例上,而不是纯类对象。您需要uploadtype = String_Manager().jsonformat才能使其正常工作。

编辑:已经正确地指出OP正在尝试导入实例本身,在这种情况下我的答案并不真正适用。但是,我无法重现该问题,尽管原始代码存在问题,jsonformat应该定义为字典而不是None,否则createjsonformat方法将失败