当我需要在 python 编程中使用@staticmethod 和@classmethod 时? [复制]

Posted

技术标签:

【中文标题】当我需要在 python 编程中使用@staticmethod 和@classmethod 时? [复制]【英文标题】:when I need to use @staticmethod and @classmethod in python programming? [duplicate] 【发布时间】:2018-03-30 13:21:49 【问题描述】:

我想知道何时需要使用 staticmethodclassmethod 装饰器。 你能指导我简单的代码,这样就可以理解 staticmethodclassmethod

【问题讨论】:

当函数是static,或者当它是附加到class的方法时怎么办... 你从来没有真正需要使用staticmethod而不是classmethod,尽管classmethod有时实际上很有用 【参考方案1】:

调用python对象的方法时,对象本身会自动作为第一个参数传递(通常命名为self

您可以通过两种方式进行更改

@classmethod注释:现在,对象的类自动作为第一个参数传递,而不是对象 用@staticmethod注释:现在,没有额外的参数被传递,只是你提供的那些。就像普通的python函数一样

类方法通常用于替代构造函数。静态方法是放在类命名空间中的普通函数,仅用于逻辑分组。

【讨论】:

以上是关于当我需要在 python 编程中使用@staticmethod 和@classmethod 时? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

C# 中的Async 和 Await 的用法详解

面向对象编程笔记--static

通过项目实践带你彻底搞懂C/C++编程中static与extern两关键字的使用

Python 之Ajax

关键字--static

java编程中如何在第三个public static中调用前两个boolean的值?