python - 为什么需要静态方法装饰器?
问题描述
鉴于以下代码运行没有错误,为什么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)
解决方案
静态方法,很像类方法,是绑定到类而不是其对象的方法。
它们不需要创建类实例。因此,它们不依赖于对象的状态。
静态方法和类方法的区别在于:
静态方法对类一无所知,只处理参数。类方法适用于类,因为它的参数始终是类本身。 https://www.programiz.com/python-programming/methods/built-in/staticmethod
推荐阅读
- aws-lambda - 是否可以使用 Serverless 在两个区域部署 API Gateway 和 Lambda?
- windows - windows server 2012 中 laravel APP QUEUE 的权限问题
- jquery - 为什么这个带有 flatpickr 的 jQuery 不起作用?(动态添加/删除日期时间字段)
- genexus - 我想从网络面板直接通过开发者菜单访问交易(
- apache-kafka - 如果我有一个 kafka 服务器运行我可以拥有多少个主题的复制因子?
- c++ - 如何将 int[4] 转换为 std::array
? - sql-server - 为什么在 sql server 中不需要使用分号来终止语句?
- ag-grid - 在 ag-Grid 中,当我更改行背景时,所选行没有颜色(默认为蓝色)
- android - 单击返回按钮时会调用弹出窗口的关闭侦听器,但不会在屏幕旋转时调用
- asp.net-core - 在 asp.net 核心中定义的自定义路由以模拟扩展在本地工作,但不在 IIS 中