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。如果你的需求是类似的,那么你就需要使用类方法。否则,如果只是需要在类定义时执行某个函数并将结果存储为类属性,不需要将其定义为类方法。
到此这篇关于django中类属性和类方法的实现的文章就介绍到这了,更多相关django 类属性和类方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
解决nohup执行python程序log文件写入不及时的问题
今天小编就为大家分享一篇解决nohup执行python程序log文件写入不及时的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-01-01
django框架自定义模板标签(template tag)操作示例
这篇文章主要介绍了django框架自定义模板标签(template tag)操作,结合实例形式分析了Django框架自定义模板标签原理、操作步骤与相关实现技巧,需要的朋友可以参考下2019-06-06
Pytorch数据读取之Dataset和DataLoader知识总结
Dataset和DataLoader都是Pytorch里面读取数据的工具.现在对这两种工具做一个概括和总结,对正在学习Pytorch的小伙伴们很有帮助,需要的朋友可以参考下2021-05-05


最新评论