相关疑难解决方法(0)

类和实例属性有什么区别?

是否有任何有意义的区别:

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)

如果您要创建大量实例,那么这两种样式的性能或空间要求是否存在差异?当您阅读代码时,您是否认为两种样式的含义有显着差异?

python attributes member-variables

127
推荐指数
4
解决办法
6万
查看次数

为什么属性引用与Python继承一样?

以下看起来很奇怪..基本上,somedata属性似乎在所有继承的类之间共享the_base_class.

class the_base_class:
    somedata = {}
    somedata['was_false_in_base'] = False


class subclassthing(the_base_class):
    def __init__(self):
            print self.somedata


first = subclassthing()
{'was_false_in_base': False}
first.somedata['was_false_in_base'] = True
second = subclassthing()
{'was_false_in_base': True}
>>> del first
>>> del second
>>> third = subclassthing()
{'was_false_in_base': True}
Run Code Online (Sandbox Code Playgroud)

self.somedata__init__函数中定义显然是解决这个问题的正确方法(所以每个类都有它自己的somedatadict) - 但什么时候这种行为是可取的?

python inheritance class

19
推荐指数
2
解决办法
7805
查看次数