Python静态方法定义放置

我正在寻找一种约定,说明如何在Python类定义中安排不同类型的方法(即@staticmethod@classmethod)。 PEP-8不提供有关该主题的任何信息。

例如,Java编程语言有一些code conventions引用了静态变量和实例变量在类定义块中出现的顺序。 Python 3是否有任何宣布此类建议的标准?

ashinelee 回答:Python静态方法定义放置

我认为在python上声明@staticmethod@classmethod的方法是在函数的正上方添加该方法语句(@staticmethod@classmethod)。
@classmethod的用法类似于实例函数,它需要一些参数,例如classcls(u可以更改参数名称,由u决定)。
是否用于@static method,不需要实例方法或类方法之类的self或class参数。这两个方法都绑定到该类而不是该类的对象上,因此@staticmethod无法访问或修改该方法,因为@staticmethod不知道该类的状态,而是{{1 }}可以访问或修改类状态,因为它可以访问(请在调用@classmethod时查看cls参数),但请记住,如果u通过@classmethod更改了某些状态,它将更改所有状态。该类的所有实例。
您可以在以下示例中看到差异。

示例:

@classmethod

有关更多说明,也许您可​​以看到此链接:
静态和类方法说明:link
类或静态变量说明:link

*我编辑了答案,因为我似乎没有回答您的问题
没有任何严格的规则/标准来安排它,幸运的是,在python中,您不必指定要定义的方法类型(在Java中,例如public void ...或private int ...等) )。

  1. 班级名称

第一个顺序是类的名称,然后您可以像Java一样具有属性引用和实例化。 U也可以指定属性的范围(例如private等)。

  1. 实例

然后,您可以通过声明@classmethod def something(cls,arg1,arg2,....): #this is class method @staticmethod def something2(arg1,...): #this is static method 来像Java一样声明实例化。如果您声明实例化,则当您声明新的类实例时它将自动调用def __init__(self,...)。如果不声明,python将继续调用此函数,因为它会自动从基类继承而不会做任何事情

  1. 功能/方法

之后,您可以声明函数。 U可以定义__init__instance method@classmethod并执行某些操作。它的方法有其自身的优点,因此取决于您的需要。

Python也支持继承和多重继承。 有关更多说明,请参见此链接link

希望有帮助。

本文链接:https://www.f2er.com/2920698.html

大家都在问