Defining a method is the same as defining regular python methods and needs no explanation.
Defining a static method is merely a matter of defining the method with static_ prepended to the method name. In which case, the self argument points to the data class and not the data class instance.
As you would expect, calling self.method() where method is static is the same as calling SelfsClass.method().
If you want to get a hold of the static method to be able to call it from, say, a static method in the a subclass and have it be executed in the class context of the subclass (not the superclass), use the full self.static_method() form (static_ prepended to the static method name).