zoukankan      html  css  js  c++  java
  • Python中staticmethod方法

    staticmethod叫做静态方法,在类里面加上@staticmethod装饰器的方法不需要传入self,同时该方法不能使用类变量和实例变量。在类内部可以调用加上装饰器@staticmethod的方法,同时也不需要实例化类调用该方法

    静态方法和类方法的区别在于:
    静态方法对类一无所知,只处理参数。
    类方法与类一起使用,因为它的参数始终是类本身。

    例子1:

    class Person():
        #加上静态方法
        @staticmethod
        def get_name():
            return 'Jack'
    
        def work(self):
            #调用静态方法
            return f'{self.get_name()} is a teacher'
    
    #不需要实例化直接调用get_name()
    print(Person.get_name())
    
    #实例化调用work()
    a_obj = Person()
    print(a_obj.work())
    
    结果:
    Jack
    Jack is a teacher
    

    例子2:

    class Dates:
        def __init__(self, date):
            self.date = date
    
        def getDate(self):
            return self.date
    
        @staticmethod
        def toDashDate(date):
            return date.replace("/", "-")
    
    date = Dates("15-12-2016")
    dateFromDB = "15/12/2016"
    dateWithDash = Dates.toDashDate(dateFromDB)
    
    if(date.getDate() == dateWithDash):
        print("Equal")
    else:
        print("Unequal")
    

    总结:如果类里面不想某个方法使用类属性和调用其它方法就可以使用静态方法,有助于优化代码结构和提高程序的可读性。 

      

  • 相关阅读:
    Java-16 常用包装类
    Java-15 String类
    flask实现web端微信登录
    Flask-excel导出数据
    Java-14 单例模式
    Java-13 接口
    Java-12 抽象类
    结对项目:一个自动生成小学四则运算题目的命令行程序(c++)
    软工作业:第一次个人项目作业
    操作系统笔记一:操作系统引论
  • 原文地址:https://www.cnblogs.com/lucktomato/p/15175084.html
Copyright © 2011-2022 走看看