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)
) 起作用?
解决方案
实例变量和类变量是分开存在的。在对象上wb.date = '2019-01-09'
设置一个实例wb
变量,而不是类变量WBReport.date
,这是类方法set_date
设置的。
类方法的调用大致相当于WBReport.date = '2019-01-09'
.
推荐阅读
- php - Laravel 5.5:如何从中间件和控制器中的 URL 获取参数?
- wordpress - 从存档调用的 CPT 页面上的 Wordpress 上一个和下一个链接
- mongodb - 使用spring boot在mongodb中“更新复杂文档”的正确方法是什么?
- python - 如何让 CMake 编译包含 Boost Local Functions 的源文件
- java - Hibernate - 根据语言从数据库中获取
- java - 当传递一个 id 时,我的视图显示一个奇怪的结果
- .net - 使用 StoreContext 时发布模式下的 .NET Native 序列化异常
- nlp - 我们可以在 Rasa Core Stories 中使用通配符作为插槽值吗?
- java - maven jar 不包括清单中的 main
- vue.js - Vue.Js,我的函数无缘无故被调用了很多次