我遇到了一个问题,导入的类无法识别它自己的某些属性。以下描述了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文件导入对象时是否需要遵循任何其他过程?
答案 0 :(得分:1)
由于类的jsonformat
属性是在__init__
函数上创建的,因此它只存在于类的初始化实例上,而不是纯类对象。您需要uploadtype = String_Manager().jsonformat
才能使其正常工作。
编辑:已经正确地指出OP正在尝试导入实例本身,在这种情况下我的答案并不真正适用。但是,我无法重现该问题,尽管原始代码存在问题,jsonformat
应该定义为字典而不是None,否则createjsonformat
方法将失败