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")
    

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

      

  • 相关阅读:
    Code Review 五问五答
    JavaScript 10分钟入门
    swagger editor使用
    Tyk API网关介绍及安装说明
    Castle 多继承选择
    线程信息的获取和设置
    s3 api接口的调用
    在Hadoop集群上的HBase配置
    OpenStack 单元测试
    在Hadoop集群上的Hive配置
  • 原文地址:https://www.cnblogs.com/lucktomato/p/15175084.html
Copyright © 2011-2022 走看看