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

相关推荐
CodeSheep3 分钟前
华为又招天才少年了。。
前端·后端·程序员
云天徽上9 分钟前
【数据可视化-162】数据见证大爱!企业捐款驰援香港数据可视化分析(Pyecharts实现)
开发语言·python·信息可视化·数据可视化·pyecharts
颜*鸣&空12 分钟前
Python环境安装教程
python
0x62696E13 分钟前
在conda虚拟环境中编译和运行ROS2
python·ubuntu·conda
武子康16 分钟前
大数据-179 Elasticsearch 倒排索引与读写流程全解析:从 Lucene 原理到 Query/Fetch 实战
大数据·后端·elasticsearch
Aspect of twilight23 分钟前
Pytorch 3D 安装教程
人工智能·pytorch·python·pytorch3d
PieroPc24 分钟前
NiceGUI sqlite3 写一个博客系统 CURD 分类
python·nicegui
回家路上绕了弯24 分钟前
微信抢红包深度解析:从算法原理到高并发工程实现
分布式·后端
编程大师哥25 分钟前
如何快速上手Django?3 小时从 0 到 1 做出第一个 Web 项目(小白友好版)
前端·django·sqlite
梦幻精灵_cq31 分钟前
python-os.path的“世纪大阅兵”:两个函数-11条语句(2+9)定乾坤
python·学习