This rule raises an issue when a call is made to a non-callable object. == Why is this an issue? :link-with-uscores1: https://docs.python.org/3/reference/datamodel.html#object.__call__ In order to be callable, a Python class should implement the {link-with-uscores1}[``++__call__++``] method. Thanks to this method, an instance of this class will be callable as a function. However, when making a call to a non-callable object, a `TypeError` will be raised. In order to fix this issue, make sure that the object you are trying to call has a `++__call__++` method. === Code examples ==== Noncompliant code example [source,python] ---- class MyClass: pass myvar = MyClass() myvar() # Noncompliant none_var = None none_var() # Noncompliant ---- ==== Compliant solution [source,python] ---- class MyClass: def __call__(self): print("called") myvar = MyClass() myvar() ---- :link-with-uscores1: https://docs.python.org/3/reference/datamodel.html#object.__call__ == Resources === Documentation * {link-with-uscores1}[Python documentation - ++__call__++ method] ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Fix this call; XX is not callable. === Highlighting Primary: The name before the opening parenthesis * Secondary 1 (if the call is made on a variable) ** location: The last value assigned. ** message: "Assigned value." * Secondary 2 ** location: The class definition ** message: "Definition." ''' == Comments And Links (visible only on this page) === relates to: S2873 endif::env-github,rspecator-view[]