在设置类变量时,我注意到以下内容:
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)
)无效?
答案 0 :(得分:4)
实例变量和类变量分开存在。 wb.date = '2019-01-09'
在对象wb
上设置一个 instance 变量,而不是类变量WBReport.date
,这是 class 方法{{ 1}}集。
对class方法的调用大致等效于set_date
。