gpt4 book ai didi

Python:使用嵌套类时出现 NameError

转载 作者:太空宇宙 更新时间:2023-11-04 07:46:44 24 4
gpt4 key购买 nike

我遇到了以下错误:

NameError: name 'JsonCleaner' is not defined

导致错误的行是字典 ERROR_CODES_MAPPING_DICT 中的第一对(参见下面的代码):

from sshop.engine.models import WrongJsonError

class JsonCleaner:


class NormalizeError(Exception):

ERROR_NO_CODE = 0
ERROR_TYPE_MISMATCH = 1
ERROR_WRONG_VALUE = 2
ERROR_LACK_OF_FIELD = 3

def __init__(self, error_desc, error_code=ERROR_NO_CODE):
self.error_desc = error_desc
self.error_code = error_code

def __unicode__(self):
return repr(self.error_desc)


# .... some methods ........


ERROR_CODES_MAPPING_DICT = {
# Line where exception is raised:
JsonCleaner.NormalizeError.ERROR_NO_CODE: WrongJsonError.NO_ERROR,
JsonCleaner.NormalizeError.ERROR_LACK_OF_FIELD: WrongJsonError.ERROR_LACK_OF_FIELD,
JsonCleaner.NormalizeError.ERROR_TYPE_MISMATCH: WrongJsonError.ERROR_TYPE_MISMATCH,
JsonCleaner.NormalizeError.ERROR_WRONG_VALUE: WrongJsonError.ERROR_WRONG_VALUE,
}

我做错了什么?

最佳答案

类名不能在类作用域内使用,因为在类被完全定义之前名称实际上并没有被绑定(bind)。将字典文字移到类范围之外。

JsonCleaner.ERROR_CODES_MAPPING_DICT = ...

关于Python:使用嵌套类时出现 NameError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5651376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com