Closed xcodebuild closed 10 years ago
class A:
data = {}
def _set(self, value, key):
self.data[value] = key
你没好好看Python教程, 这个data
是class attribute啊... Python里实例属性是构造函数里初始化的, 像这样:
class A(object):
def __init__(self):
self.data = {}
def _set(self, value, key):
self.data[value] = key
这样作用域才一致... 还有请让你的所有类都直接或间接从object
继承, 不要干写class Something:
这样的代码, 具体原因你现在不用管. 如果感兴趣请自行Google "python old-style classes"
原来这样,的确没认真看过教程什么的,一直按照其他语言的思路写- -,谢站长了,这个issue我关了
下午在修改微信代码时碰到一个问题把自己吓了一跳,是我对python继承的理解一直不正确么,先看一段java代码
输出结果很容易理解,是
但是同样的逻辑在Python中的结果似乎一点都不一样,下面时python代码
得到的结果全部是
为什么,b和c是两个子类的不同实例,为什么他们(甚至于A())都会共用data的数据,python这样的设计有什么原因或者优势么