将类分配给变量

时间:2015-09-30 21:09:34

标签: python class oop object

class SimpleTestCase(object):

    def __init__(self, name):
        self.name = name
        self.SP = SP

    def __somemethod(self):
     # do something

class Test(object):
    def __init__(self, name ):
        self.name = name
        self.case = SimpleWidgetTestCase

有什么理由可以吗

self.case = SimpleTestCase

而不是

simple_obj = SimpleTestCase("name")

通过创建对象,可以访问类方法和变量。前者是否等同于后者?

1 个答案:

答案 0 :(得分:1)

  

有没有理由这样做   self.case = SimpleTestCase

是的,有理由。有时候,人们希望在不创建实例的情况下存储类型。 创建实例可能很昂贵,例如__init__执行打开数据库连接,读取大文件等操作。

  

通过创建对象,可以访问类方法和变量。前者是否等同于后者?

不,前者不等于后者。 在前者中,您为变量指定了一个类型。在后者你做一个实例。
如果它们是类方法(或静态方法)或类变量,Python允许您访问方法和变量。这样您就不需要创建和实例。 通过创建实例,您将访问实例方法。

请参阅此链接了解difference between staticmethod and classmethod in python