首页 > 编程语言 >Python的@staticmethod @classmethod @property

Python的@staticmethod @classmethod @property

时间:2022-10-26 20:12:46浏览次数:43  
标签:Python self month classmethod year print property day

@staticmethod 静态方法

用于修饰类中的方法,使其可以在不创建类实例的情况下调用方法,好处是执行效率比较高;

静态方法就是类对外部函数的封装,有助于优化代码结构、提高程序的可读性。

class myclass():
    def __init__(self):
        self.num = 1

  # 声明一个静态方法 @staticmethod def print_num(): print(self.num) print(myclass.print_num) >> 1

 

@classmethod 类方法

用于修饰类的方法,将一个类的方法指定为类方法,其作用有

  • python中不像C++一样,不支持多个参数重载构造函数,就需要采用classmethod处理函数,在对象实例化之前调用这些函数,相当于多个构造函数
  • 同staticmethod一样,可以在不创建类实例的情况下调用方法
  • 有些时候需要在实例化前就对类进行交互,这种交互可能会影响类的实例化过程,故采用classmethod
class myclass():
    def __init__(self,day=0,month=0,year=0):
        self.day =      day
        self.month = month
        self.year =     year

    @classmethod
    def deal_date(cls, data_string):    # 需要有一个cls,cls指的就是类本身
        year, month, day = map(int, data_string.split('-'))
        date1 = cls(year, month, day)

        return date1

    def out_date():
        print(year, month, day)

 

a = myclass.deal_date("2012-12-21")    # 这样就可以不修改构造函数的前提下,对不同的参数进行重构

a.out_date()

>> 20121221

 

@property

可以通过@property来创建只读属性,将方法可以像属性一样访问

@property下方的函数只能是self参数,不能有其他参数

class myclass():

    @property
    def shape(self):
        return 1,2

print(myclass.shape)
>> 1 2

 

标签:Python,self,month,classmethod,year,print,property,day
From: https://www.cnblogs.com/Liang-ml/p/16821975.html

相关文章

  • Python——爬虫准备工作
    Python——爬虫准备工作第三方模块的下载与使用'''第三方模块: 别人写的模块,一般情况下,功能都非常强大 使用第三方模块: 第一次使用必须先下载,后面才可以反复使用(下......
  • python进阶之路21 正则应用 第三方模块之requests模块 openpyxl模块 简易爬虫(panda
    作业讲解"""网络爬虫没有我们现在接触的那么简单 有时候页面数据无法直接拷贝获取 有时候页面还存在防爬机制弄不好ip会被短暂拉黑"""http://www.redbull.com.cn/ab......
  • 23、python模块篇 第三方模块、requests模块、openpyxl模块
    目录一、第三方模块的下载与使用1、什么是第三方模块2、如何安装第三方模块方式一:pip工具方式二:pycharm中下载3、注意事项1、报错并有警告信息2、报错,提示关键字3、报错,无......
  • python协程
    1、概念协程,又称微线程。协程是python个中另外一种实现多任务的方式,只不过比线程更小占用更小执行单元(理解为需要的资源)。为啥说它是一个执行单元,因为它自带CPU上下文。......
  • 【python】创意二维码那么多,咋不的掺和一下整一手~
    前言嗨喽~大家好呀,这里是魔王呐!网上有很多的创意二维码,看了,别的不说羡慕肯定是有的,羡慕有了这不得自己整点活~今天我们就来试试只用几行代码,生成动态二维码!开发环......
  • python numpy 基础科学计算包,数学函数库
    pipinstallnumpynumpy.array()函数,强大的N维数组对象ndarrayimportnumpyasnpa=np.array([1,2,3])print(a)[123]#多于一个维度importnumpyasnpa......
  • python 回调函数
    回调函数:回头调用一下 把函数当成一个参数传递给另外一个函数 在当前函数执行完毕之后,最后调用一下当参数传递进来的函数 add_done_callback(回调函数)功能: 支付状态......
  • python线程
    1、概念cpu执行程序的最小单位,从属于进程,是程序的实际执行者。一个进程至少包含一个主线程,也可以有更多的子线程。Python可以运行多线程,但和单核CPU多进程一样,在给定时刻......
  • 使用Python时常见的9个错误
    通过应用软件工程最佳实践,可以交付质量更好数据科学的项目。更好的质量可能是更少的错误、可靠的结果和更高的编码效率。最佳实践都是从错误中总结出来的,所以这里我们总结了......
  • Python代码编写辅导:CSC411 Digit Classification
    全文链接:tecdat.cn/?p=29674RequirementInthisassignment,youwillcomparethecharacteristicsandperformanceofdifferentclassifiers,namelylogisticregre......