1. Greg Malcolm
  2. python_koans
Issue #19 new

Misleading test name in about_class_attributes.py

Giulio Piancastelli
created an issue

The section of ##about_class_attributes.py## dealing with ##Dog2## contains a [[https://bitbucket.org/gregmalcolm/python_koans/src/81e0997715bb/python%202/koans/about_class_attributes.py#cl-94|test_staticmethods_also_overshadow_instance_methods]] with a misleading name that seems to imply a precedence of static methods over instance methods in the name resolution process for methods in Python classes. It is not so. In the test, the static method overwrites the instance method only because the former appears after the latter in the class code. If ##bark(self)## appeared after ##bark()##, you would obtain the opposite result.

Proof: {{{

!python

class B(object): ... Graeme Smecher ... def m(): ... return 'm_static' ... def m(self): ... return 'm_instance' ... b = B() b.m() 'm_instance' }}}

I would suggest to remove the test, or to morph it into a test on name resolution precedence (the last definition always wins) in the class namespace.

Comments (0)

  1. Log in to comment