== Why is this an issue?

Unlike class and instance methods, static methods don't receive an implicit first argument. Nonetheless naming the first argument ``++self++`` or ``++cls++`` guarantees confusion - either on the part of the original author, who may never understand why the arguments don't hold the values he expected, or on that of future maintainers.


=== Noncompliant code example

[source,python]
----
class MyClass:
  @staticmethod
  def s_meth(self, arg1, arg2):  #Noncompliant
    # ...
----


=== Compliant solution

[source,python]
----
class MyClass:
  @staticmethod
  def s_meth(arg1, arg2):  #Noncompliant
    # ...
----



ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

=== Message

Remove the "xxx" argument from this method definition.


'''
== Comments And Links
(visible only on this page)

=== is duplicated by: S2851

=== is duplicated by: S2852

=== on 24 Apr 2015, 09:04:19 Elena Vilchik wrote:
\[~ann.campbell.2] I would replace ``++bug++`` tag with ``++confusing++``. Or at least add it. WDYT?

=== on 28 Apr 2015, 15:36:24 Ann Campbell wrote:
\[~elena.vilchik] I've downgraded this from bug to pitfall (meaning it's not broken now but you've left a trap for the next guy)

endif::env-github,rspecator-view[]
