【发布时间】:2013-02-25 12:48:07
【问题描述】:
我不确定这段代码的输出是正确还是错误:
class F:
"""An abstract class"""
list_of_secrets = []
def __init__(self):
pass
def getSecret(self):
return self.list_of_secrets
class F_None(F):
pass
class F_Some(F):
def __init__(self):
self.list_of_secrets.append("secret value!")
x = F_Some()
print "x:",x.getSecret()
y = F_None()
print "y:",y.getSecret()
使用 python 2.7.3 的输出:
x: ['secret value!']
y: ['secret value!']
我认为它应该输出:
x: ['secret value!']
y: []
有什么想法吗?
【问题讨论】:
-
我不确定它是否相同,因为不涉及继承。
-
是一样的。它仍然是类属性,而不是实例属性。在这种情况下是父类,但仍然是完全相同的情况。
-
回答问题:否。
-
@dbr:很好的欺骗目标,希望我能找到那个。 :-)
标签: python inheritance language-features