设置类变量

时间:2019-01-09 20:04:55

标签: python

在设置类变量时,我注意到以下内容:

from ingest.models import WBReport
wb=WBReport()
wb.date = '2019-01-09'

以上未设置课程的日期。例如,调用此方法,它将输出None

@classmethod
def load_asin(cls):
    print cls.date

但是,如果我添加另一种方法来设置该变量,它将起作用。例如:

@classmethod
def set_date(cls, date):
    cls.date=date

from ingest.models import WBReport
wb=WBReport()
wb.set_date('2019-01-09')

为什么第一种方法(wb.date=X)无效,而第二种方法(wb.set_date(X))无效?

1 个答案:

答案 0 :(得分:4)

实例变量和类变量分开存在。 wb.date = '2019-01-09'在对象wb上设置一个 instance 变量,而不是类变量WBReport.date,这是 class 方法{{ 1}}集。

对class方法的调用大致等效于set_date