首页 > 其他分享 >40.类方法

40.类方法

时间:2023-11-17 12:13:02浏览次数:17  
标签:classmethod Utils 40 实例 now 方法 cls

除了类属性,类还有类方法。

同样,类方法也可以通过类名直接进行使用,类方法在定义时,需要使用 @classmethod 装饰器进行修饰。

与实例方法不同的是,实例方法有一个默认参数 self,代表当前调用方法的实例对象,而类方法的默认参数为 cls, 该参数也是在使用时,由解释器自动传入的,但传入的对象不是实例对象,而是类对象。

在类方法中,可以通过参数 cls 使用使用类属性。

一般类方法用来封装工具类使用,将一些复杂的代码逻辑封装成类方法,由类名直接调用,不需要实例对象,比如时间处理,网络请求处理等。

需要注意的是,如果类中即定义了实例属性,又定义了类方法,那么在类方法中是不能使用实例属性的,因为在使用类方法的过程中,实例对象不存在,所以不能使用实例属性

import datetime


class Utils:
now = datetime.datetime.now()

@classmethod
def current_date_time(cls):
return cls.now

@classmethod
def current_date(cls):
return cls.now.strftime("%Y-%m-%d")

@classmethod
def current_time(cls):
return cls.now.strftime('%H-%M-%S')

@classmethod
def getYear(cls):
return cls.now.year

@classmethod
def getMonth(cls):
return cls.now.month

@classmethod
def getDay(cls):
return cls.now.day


print(Utils.current_date_time())
print(Utils.current_date())
print(Utils.current_time())
print(Utils.getYear())
print(Utils.getMonth())
print(Utils.getDay())

 

标签:classmethod,Utils,40,实例,now,方法,cls
From: https://www.cnblogs.com/csfsz/p/17838365.html

相关文章

  • AO3400-ASEMI中低压MOS管AO3400参数、封装、尺寸
    编辑:llAO3400-ASEMI中低压MOS管AO3400参数、封装、尺寸型号:AO3400品牌:ASEMI封装:SOT-23连续漏极电流(Id):5.8A漏源电压(Vdss):30V功率(Pd):1.4W芯片个数:1引脚数量:3类型:MOS管特性:N沟道MOS管、中低压MOS管RDS(on):28mΩVGS:1.45封装尺寸:如图工作温度:-55°C~150°CAO3400......
  • c#防止sql注入的具体方法与代码
    原文链接:https://www.zhihu.com/question/565076777首先考虑使用参数化查询,参数化查询是数据库程序设计中最有效的防止SQL注入的方法,因为参数化查询将参数值作为独立的参数传递给数据库,而不是将参数值嵌入到SQL语句中。例如:stringsql="Select*FromUserWHEREUserName=@U......
  • Cocos Creator 常见错误排查方法
    CocosCreator新手开发的时候经常会遇到一些错误不知道如何解决,今天把这些错误总结一下,下次遇到的时候,自己知道如何分析。 到底谁为null或undefine 我们在使用CocosCreator开发的时候,运行游戏项目,经常会遇到这样的问题: TypeError:Cannotreadpropertiesofnull(rea......
  • 三维模型几何坐标偏差修正(纠正)的常用方法分析
    三维模型几何坐标偏差修正(纠正)的常用方法分析 以下是几个常用的倾斜摄影三维模型几何坐标偏差修正和纠正的方法:1、基于地面控制点的坐标转换:地面控制点是已知精确地理位置的点,可以通过测量仪器获取其准确的世界坐标。首先,在倾斜摄影影像中识别并测量这些地面控制点,并将其与真......
  • 无GPU环境中运行出错解决方法:AssertionError: Torch not compiled with CUDA enabled
    在執行pytorch代碼的時候,突然看到報錯AssertionError:TorchnotcompiledwithCUDAenabled這說明了1.你pytoch确实安装了2.你安装的是cpu版本作为验证,你可以在python编辑器输入下列代码如果要在无GPU环境中运行,需要进行一些修改。1. 情况一:将出现‘gpu:0’的地方......
  • FreeRTOS系统中CPU使用率统计方法分析
    基本概念操作系统中CPU使用率是在软件架构设计中必须要考虑的一个重要性能指标。它直接影响到程序的执行时间以及优先级更高的任务能否实时响应的问题。而CPU使用率也不能过低,避免资源浪费。统计方法FreeRTOS操作系统是使用任务的累计运行时间来统计每一个任务自系统开始运行到......
  • android 圆角方法之一
    playerView.setOutlineProvider(newViewOutlineProvider(){@OverridepublicvoidgetOutline(Viewview,Outlineoutline){outline.setRoundRect(0,0,view.getWidth(),view.getHeight(),15);}});......
  • P9400 题解
    blog。很naive的题,写这篇题解,主要是现有题解都用的线段树/平衡树,让我感到很难绷。一眼DP。\(dp_{i,j}\)表示前\(i\)个宿舍,现在有连续\(j\)个灯亮大于\(B\),方案数。\(dp_{i,0}=\max(\min(B,r_i)-l_i+1,0)\cdot\sum\limits_{j=0}^{A-1}dp_{i-1,j}\)。\(dp_{i......
  • P9840 [ICPC2021 Nanjing R] Oops, It's Yesterday Twice More
    P9840[ICPC2021NanjingR]Oops,It'sYesterdayTwiceMore注意到最后袋鼠要集中到一个点上,显然先走到四个角落之一再移动到点\((a,b)\)是最优的,可以证明,步数一定不超过\(3(n-1)\)。因为不知道具体要到哪一个角落里,因此记录\((a,b)\)到每个角落的距离并大力分类讨论即可......
  • Python绘制神经网络模型的结构示意图的方法
      本文介绍基于Python语言,对神经网络模型的结构进行可视化绘图的方法。  最近需要进行神经网络结构模型的可视化绘图工作。查阅多种方法后,看到很多方法都比较麻烦,例如单纯利用graphviz模块,就需要手动用DOT语言进行图片描述,比较花时间;最终,发现利用第三方的ann_visualizer模块,可......