美文网首页
如何定义类方法和静态方法?(转译)

如何定义类方法和静态方法?(转译)

作者: 小黑佬 | 来源:发表于2019-10-29 10:03 被阅读0次

    要在python中定义类方法,我们使用@classmethod装饰器,并使用@staticmethod装饰器定义静态方法。
    让我们看一个例子,以了解它们之间的区别。假设我们要创建一个类Person。现在,python不支持C ++或Java之类的方法重载,因此我们使用类方法创建工厂方法。在下面的示例中,我们使用类方法从出生年份创建一个人员对象。

    如上所述,我们使用静态方法来创建实用程序函数。在下面的示例中,我们使用静态方法来检查一个人是否成年。
    实例:

    # Python program to demonstrate  
    # use of class method and static method. 
    from datetime import date 
      
    class Person: 
        def __init__(self, name, age): 
            self.name = name 
            self.age = age 
          
        # a class method to create a Person object by birth year. 
        @classmethod
        def fromBirthYear(cls, name, year): 
            return cls(name, date.today().year - year) 
          
        # a static method to check if a Person is adult or not. 
        @staticmethod
        def isAdult(age): 
            return age > 18
      
    person1 = Person('mayank', 21) 
    person2 = Person.fromBirthYear('mayank', 1996) 
      
    print person1.age 
    print person2.age 
      
    # print the result 
    print Person.isAdult(22)
    

    Output

    21
    21
    True
    

    参考:
    Python中的类方法与静态方法

    相关文章

      网友评论

          本文标题:如何定义类方法和静态方法?(转译)

          本文链接:https://www.haomeiwen.com/subject/uldwvctx.html