是否有任何有意义的区别:
class A(object):
foo = 5 # some default value
Run Code Online (Sandbox Code Playgroud)
与
class B(object):
def __init__(self, foo=5):
self.foo = foo
Run Code Online (Sandbox Code Playgroud)
如果您要创建大量实例,那么这两种样式的性能或空间要求是否存在差异?当您阅读代码时,您是否认为两种样式的含义有显着差异?
我想知道为什么在基类中定义并从派生类访问的字典显然只存在于一个内存位置.一个简短的例子:
class BaseClass:
_testdict = dict()
_testint = 0
def add_dict_entry(self):
self._testdict["first"] = 1
def increment(self):
self._testint += 1
class Class1(BaseClass):
pass
class Class2(BaseClass):
pass
object1 = Class1()
object2 = Class2()
object1.add_dict_entry()
object1.increment()
print(object2._testdict)
print(object2._testint)
Run Code Online (Sandbox Code Playgroud)
输出是:
{'first': 1}
0
Run Code Online (Sandbox Code Playgroud)
为什么对object1的"add_dict_entry"的调用会影响object2的字典?使用整数("增量"),基类变量不受影响.
非常感谢.
洛伦茨