alex23 wrote: > On Sep 26, 12:08 am, Peter Otten <__pete...@web.de> wrote: >> Jayden wrote: >> > In the Python Tutorial, Section 9.4, it is said that >> >> > "Data attributes override method attributes with the same name." >> >> The tutorial is wrong here. That should be >> >> "Instance attributes override class attributes with the same name." >> >> As methods are usually defined in the class and data attributes are >> usually set in the instance it will look like data override method >> attributes. > > But you can assign attributes on the class, which has the same impact, > so the tutorial is correct. > >> No, you're right. Please file a bug report athttp://bugs.python.org > > Didn't you just demonstrate the behaviour you're now saying is a bug? >
To me "Data attributes override method attributes with the same name" implies that data attributes take precedence over method attributes, not that they replace them only when there is an assignment of data after the method definition. With your interpretation (if I understand you correctly) "Method attributes override data attributes with the same name" is equally correct, and therefore I think it is misleading to focus on the type of the attributes at all. I would even consider replacing the whole paragraph """ Data attributes override method attributes with the same name; to avoid accidental name conflicts, which may cause hard-to-find bugs in large programs, it is wise to use some kind of convention that minimizes the chance of conflicts. Possible conventions include capitalizing method names, prefixing data attribute names with a small unique string (perhaps just an underscore), or using verbs for methods and nouns for data attributes. """ http://docs.python.org/dev/py3k/tutorial/classes.html with something like "Data attributes and method attributes share the same namespace. To avoid name conflicts consider using verbs for methods and nouns for data attributes" -- http://mail.python.org/mailman/listinfo/python-list