首页 > 解决方案 > 设置类变量

问题描述

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

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)) 起作用?

标签: python

解决方案


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

类方法的调用大致相当于WBReport.date = '2019-01-09'.


推荐阅读