Python staticmethod()

staticmethod() are a special case of methods. Any functionality that belongs to a class, but doesn’t require the object is placed in the static method. Static methods are similar to class methods. The main difference is that a static method doesn’t receive any additional arguments.
Remember that, a static method doesn’t use the self variable and it is defined using a built-in function named staticmethod. Python has a handy syntax, called a decoder is used to make it easier to apply the staticmethod function to the method function definition. It has the following syntax:

@staticmethod
def name(args...):
    statements

Example:

class choice:
    def __init__(self, subjects):
        self.subjects=subjects
        @staticmethod
        def validate_subject(subjects):
            if "C#" in subjects:
                print("This book is not available now!")
            else:
                return True
subjects=["C", "C++", "C#", "Java", "Python"]
if all(choice.validate_subject(i) for i in subjects ):
    ch=choice(subjects)
    print("You have already kept this book!")