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。如果你的需求是类似的,那么你就需要使用类方法。否则,如果只是需要在类定义时执行某个函数并将结果存储为类属性,不需要将其定义为类方法。

相关推荐
逆风飞翔的小叔1 分钟前
【Python基础】Python 流程控制语句使用详解
python·python 流程控制语句·python 流程控制·python 流程控制语句使用·python 流程控制语句详解
2601_9638702212 分钟前
基于Python的晋江文学城热门作品数据分析与可视化
开发语言·python·数据分析
llwszx16 分钟前
【Java/Go后端手撸原生Agent(第七篇):Token预算管理 + 滑动窗口上下文裁剪】
java·后端·python·agent开发·上下文工程·上下文裁剪·滑动窗口裁剪
我怎么又饿了呀20 分钟前
DataWhale—量化金融(task8 最大回撤 和 仓位管理)
python·金融·量化
AskHarries33 分钟前
CDN 要不要上
后端
Black_Rock_br1 小时前
打通 PyTorch Monarch 与 ROCm:单 Controller 架构的异构算力实战
人工智能·pytorch·python·开源
其实防守也摸鱼1 小时前
Kimi K3深度测评:长文本之外的真实力
运维·开发语言·网络·人工智能·python·学习·安全
weixin_BYSJ19871 小时前
springboot3家政平台小程序--附源码00904
java·javascript·spring boot·python·django·flask·php
凤山老林1 小时前
SpringBoot 3 启用 spring.factories 后如何升级替换原有的 spring.factories ?
spring boot·后端·spring
风痕天际1 小时前
Pytorch开发教程1——CUDA安装
人工智能·pytorch·python