42 lines
1008 B
Plaintext
42 lines
1008 B
Plaintext
Class methods that don't access instance data can and should be static because they yield more performant code.
|
|
|
|
|
|
To implement a static method in Python one should use either ``++@classmethod++`` or ``++@staticmethod++``. A class method receives the class as implicit first argument, just like an instance method receives the instance. A static method does not receive an implicit first argument.
|
|
|
|
== Noncompliant Code Example
|
|
|
|
----
|
|
class Utilities:
|
|
def do_the_thing(self, arg1, arg2, ...): # Noncompliant
|
|
#...
|
|
----
|
|
|
|
== Compliant Solution
|
|
|
|
----
|
|
class Utilities:
|
|
@classmethod
|
|
def do_the_thing(cls, arg1, arg2, ...):
|
|
#...
|
|
----
|
|
or
|
|
|
|
----
|
|
class Utilities:
|
|
@staticmethod
|
|
def do_the_thing(arg1, arg2, ...):
|
|
#...
|
|
----
|
|
|
|
== Exceptions
|
|
|
|
Methods which raise or may raise a ``++NotImplementedError++`` are ignored.
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::comments-and-links.adoc[]
|
|
endif::env-github,rspecator-view[]
|