django中的类属性和类方法

django中直接定义类的属性,可以直接在实例化对象或者类中调用。

类属性:version_number是一个类属性,在所有实例之间共享。它在类加载时就被初始化。

class Book:

version_number = "1.0.0"

def init(self, title, author):

self.title = title

self.author = author

@classmethod

def get_version(cls):

return cls.version_number

使用类方法

print(Book.get_version()) # 输出: 1.0.0

什么时候需要类方法(@classmethod):

1、如果你需要定义一个方法,它需要访问类级别的数据(如类属性);

2、定义类方法,就是可以其他的这个类以外的方法也可以调用

3、如果你需要定义一个方法,需要在方法中使用 cls 来创建类的实例

4、执行其他与类相关的操作,那么你应该使用 @classmethod。

class Book:

version_number = "1.0.0"

def init(self, title, author):

self.title = title

self.author = author

@classmethod

def get_version(cls):

return cls.version_number

使用类方法

print(Book.get_version()) # 输出: 1.0.0

这个例子中,get_version 是一个类方法,通过 @classmethod 装饰器声明,允许你访问类属性 version_number。如果你的需求是类似的,那么你就需要使用类方法。否则,如果只是需要在类定义时执行某个函数并将结果存储为类属性,不需要将其定义为类方法。

相关推荐
Trouville01几秒前
Pycharm软件初始化设置,字体和shell路径如何设置到最舒服
ide·python·pycharm
d***95629 分钟前
springboot接入deepseek深度求索 java
java·spring boot·后端
高-老师13 分钟前
WRF模式与Python融合技术在多领域中的应用及精美绘图
人工智能·python·wrf模式
小白学大数据22 分钟前
基于Splash的搜狗图片动态页面渲染爬取实战指南
开发语言·爬虫·python
iOS开发上架哦27 分钟前
Swift中对象实例方法名混淆问题详细解决方法
后端
零日失眠者28 分钟前
【文件管理系列】003:重复文件查找工具
后端·python
哈哈哈笑什么30 分钟前
多级缓存框架(Redis + Caffeine)完整指南
redis·后端
哈哈哈笑什么31 分钟前
分布式事务实战:订单服务 + 库存服务(基于本地消息表组件)
分布式·后端·rabbitmq
FreeCode38 分钟前
一文了解LangGraph智能体设计开发过程:Thinking in LangGraph
python·langchain·agent
溪饱鱼38 分钟前
NextJs + Cloudflare Worker 是出海最佳实践
前端·后端