首页 > 解决方案 > 为什么需要静态方法装饰器?

问题描述

鉴于以下代码运行没有错误,为什么staticmethod需要装饰器?它实际上在做什么?

class Foo:
    def say_hi(name):
        print(f'Hello {name}.')

    @staticmethod
    def say_bye(name):
        print(f'See ya later, {name}.')

my_name = 'Bar...t'
Foo.say_hi(my_name)
Foo.say_bye(my_name)

标签: pythonpython-3.xdecorator

解决方案


静态方法,很像类方法,是绑定到类而不是其对象的方法。

它们不需要创建类实例。因此,它们不依赖于对象的状态。

静态方法和类方法的区别在于:

静态方法对类一无所知,只处理参数。类方法适用于类,因为它的参数始终是类本身。 https://www.programiz.com/python-programming/methods/built-in/staticmethod


推荐阅读