![](https://secure.gravatar.com/avatar/e8600d16ba667cc8d7f00ddc9f254340.jpg?s=120&d=mm&r=g)
On Fri, 22 Jul 2016 at 07:34 Edward Minnix <egregius313@gmail.com> wrote:
Hello,
I have been reading Luciano Ramalho’s *Fluent Python, *and in the book he says he cannot think of a good use for staticmethod, I have been thinking about that, and so far I have only thought of one good use case: when you have a version of a common function, e.g., sum, and you want to qualify it with a better name but something like sumLineItems would sound wrong (to me at least). Would this be a good choice for something like:
class LineItem: . . . . . . . . def __add__(self, other): ### Function body ###
. . . . . . . .
@staticmethod def sum(items: Sequence[LineItem]) -> LineItem: ### Add up LineItems ###
Does this seem like a reasonable use for staticmethod? I think its a good way to qualify a name in a more concise way.
I don't think it is as I don't think it's any more concise than sum_line_items(). The only reason I ever use staticmethod is if I have a method that doesn't use self or cls but I expect subclasses to potentially need/want to override the method. Otherwise whatever the staticmethod is should be a function.