@staticmethod() - Converts a method into a static method

Static methods are functions defined in a class that are decorated with the @staticmethod.  Static methods do not take self as the first parameter.

Example

Python
class MyClass():
    def __init__(self):
        self.a = 5

    def thisIsAClassMethod(self):
        print('I am a class method and have "self" as a required parameter.')

    @staticmethod
        def thisIsAStaticMethod():
            print('I am a static method.')

    def classMethodsCanAccessClassFields(self):
        print(f'{self.a}')

    @staticmethod
        def staticMethodsCannotAccessClassFields():
            # runtime error because there is no 'self'
            print(f'{self.a}')

myClass = MyClass();
myClass.thisIsAClassMethod()     # 'I am a class method and have "self" as a required parameter.'
myClass.thisIsAStaticMethod()    # 'I am a static method.'

try:
    MyClass.thisIsAClassMethod() # runtime error
except Exception as e:
    print(e)

MyClass.thisIsAStaticMethod()    # 'I am a static method.'

myClass.classMethodsCanAccessClassFields();        # 5

try:
    MyClass.staticMethodsCannotAccessClassFields() # runtime error
except Exception as e:
    print(e)

Output

I am a class method and have "self" as a required parameter.
I am a static method.
thisIsAClassMethod() missing 1 required positional argument: 'self'
I am a static method.
5
name 'self' is not defined

Notes

Note that the instance myClass can still call a static method, but it does not have a self parameter so cannot access fields defined by the class or other non-static methods of the class.