关于Python3 类方法、静态方法新解


Posted in Python onAugust 30, 2019

如下所示:

class Date:
 def __init__(self, year, month, day):
  self.year = year
  self.month = month
  self.day = day

 # 实例方法
 def tomorrow(self):
  self.day +=1

 def __str__(self):
  return '{}/{}/{}'.format(self.year,self.month,self.day)

 # 静态方法
 @staticmethod
 def format_date_str(date_str):
  year, month, day = tuple(date_str.split('-'))
  return Date(int(year),int(month),int(day))

 # 类方法
 # 这里的 cls 实际就是类本身,它将自己本身返回,不需要我们写返回的类名,更好一些
 @classmethod
 def format_str(cls, date_str):
  year, month, day = tuple(date_str.split('-'))
  return cls(int(year),int(month),int(day))

if __name__ == "__main__":
 new = Date(2018,12,12)
 print(new)
 new.tomorrow()
 print(new)

 # 现在我们想输入一个日期字符串需要怎么做呢?
 date_str = '2018-12-30'
 year, month, day = tuple(date_str.split('-')) # 这里利用了tuple的拆包属性,将分开的列表分别赋给变量
 new = Date(year,month,day)
 print(new)
 # 如果有静态方法,就会更加简单了
 new = Date.format_date_str('2019-12-01')
 print(new)
 # 但是静态方法还要将类的名称返回,那有没有更好的方法呢
 # 那就是类方法,类方法的原理就是 将输入的参数处理后 通过类方法返回一个实例对像,静态方法也是如此,但静态方法可以不返回实例 而返回其他的
 new = Date.format_str('2019-9-01')
 print(new)
 # 那么问题来了?什么使用用静态方法,什么时候使用类方法呢?
 # 原则上是:当需要返回实例时使用类方法,不需要返回实例对象时 直接使用静态方法就好了,
 # 例如我们做验证日期字符串是否合法的时候没必要返回实例,那就使用 静态方法就可以了

以上这篇关于Python3 类方法、静态方法新解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现的检测web服务器健康状况的小程序
Sep 17 Python
Python中字符串的处理技巧分享
Sep 17 Python
Python编写Windows Service服务程序
Jan 04 Python
opencv python 基于KNN的手写体识别的实例
Aug 03 Python
Python开发的十个小贴士和技巧及长常犯错误
Sep 27 Python
20行python代码实现人脸识别
May 05 Python
Python中函数的基本定义与调用及内置函数详解
May 13 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
Oct 24 Python
wxPython实现画图板
Aug 27 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
Feb 12 Python
基于python实现计算两组数据P值
Jul 10 Python
Python 找出英文单词列表(list)中最长单词链
Dec 14 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 #Python
简单的Python调度器Schedule详解
Aug 30 #Python
详解在Python中以绝对路径或者相对路径导入文件的方法
Aug 30 #Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
Aug 30 #Python
Python matplotlib生成图片背景透明的示例代码
Aug 30 #Python
Python 批量刷博客园访问量脚本过程解析
Aug 30 #Python
快速解决docker-py api版本不兼容的问题
Aug 30 #Python
You might like
PHP开发中csrf攻击的简单演示和防范
2017/05/07 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
浅析node.js中close事件
2014/11/26 Javascript
jQuery简单实现验证邮箱格式
2015/07/15 Javascript
二维码图片生成器QRCode.js简单介绍
2017/08/18 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
p5.js入门教程之小球动画示例代码
2018/03/15 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
react的hooks的用法详解
2020/10/12 Javascript
python将人民币转换大写的脚本代码
2013/02/10 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
2016/06/02 Python
django框架如何集成celery进行开发
2017/05/24 Python
Python3生成手写体数字方法
2018/01/30 Python
python查看模块安装位置的方法
2018/10/16 Python
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
Python使用Slider组件实现调整曲线参数功能示例
2019/09/06 Python
为什么说Python可以实现所有的算法
2019/10/04 Python
给Python学习者的文件读写指南(含基础与进阶)
2020/01/29 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
2020/12/09 Python
详解CSS3新增的背景属性
2019/12/25 HTML / CSS
CSS3实现莲花绽放的动画效果
2020/11/06 HTML / CSS
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
HTML5如何为形状图上颜色怎么绘制具有颜色和透明度的矩形
2014/06/23 HTML / CSS
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
Shopee马来西亚:随拍即卖,最佳行动电商拍卖平台
2017/06/05 全球购物
电子商务专业求职信
2014/03/08 职场文书
建议书的格式
2014/05/12 职场文书
元旦趣味活动方案
2014/08/22 职场文书
内科护士节演讲稿
2014/09/11 职场文书
教师节班会开场白
2015/06/01 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书
python文件名批量重命名脚本实例代码
2021/04/22 Python