我遇到了一个问题,导入的类无法识别它自己的一些属性。下面介绍中的类字符串管理器.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文件导入对象时是否需要遵循其他过程?你知道吗
因为类的
jsonformat
属性是在__init__
函数上创建的,所以它只存在于类的初始化实例上,而不是纯类对象上。你需要做uploadtype = String_Manager().jsonformat
才能让它工作。你知道吗EDIT:已经正确指出OP试图导入实例本身,在这种情况下,我的答案并不适用。但是,我还不能重现这个问题,尽管原始代码有一个问题,即
jsonformat
应该被定义为字典而不是无字典,否则createjsonformat
方法将失败。你知道吗相关问题 更多 >
编程相关推荐