作者回复: 类的私有属性有两种,一种是 一个下划线,一种是两个下划线,比如实例化属性叫做 self._name 和 self.__name , 那么一个下划线的私有属性只是告诉使用者,它是私有属性,仍然可以调用更改,如下代码: class Player(): def __init__(self): self.__name = 'w' user1 = Player() print(user1._name) 如果是两个下划线的私有属性,直接调用的时候就会报AttributeError 错误了,原因是程序自动隐藏了这个属性,把它的名字改为"_类名__属性名"代码如下: class Player(): def __init__(self): self.__name = 'w' user1 = Player() print(user1._Player__name) 目的就是让调用的人不随意使用两个下划线的私有变量,知道原理就好,不要去调用库里面的两个下划线开始的属性,一般会有封装好的方法供你调用
作者回复: 检查一下 __init__ 附近是否有错误?
作者回复: 用 json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]]) 如 json.loads(jsonstring, object_hook=ClassName)
作者回复: updateName这个方法在前面定义的大小写是否对应呢? 这个错误提示的是没有定义