Ben Finney wrote: > Eric Smith <eric+python-dev at trueblade.com> writes: > >> Ben Finney wrote: >>> "Benjamin Peterson" <musiccomposition at gmail.com> writes: >>>> Line 94-95 in unittest.py (trunk): >>>> # All classes defined herein are 'new-style' classes, allowing use of 'super()' >>>> __metaclass__ = type >>> Hmm, you're right; I see that in Python 2.5.2 'unittest.py'. >>> >>> Why is it not there in 3.0's 'unittest.py'? Is this achieved some >>> other way? >> In 3.0 there are only new-style classes, so nothing needs to be done >> there. > > What makes that happen in the case where a class declares no > superclass? Is there an invisible enforced "__metaclass__ = type" for > every module? Where can I read about this change? The magic is actually in 2.x, not in 3.0. In 2.x, if you don't explicit set the metaclass (or inherit explicitly from an object which sets it), then the default metaclass is 'classobj'. In 3.0, that magic goes away and the default metaclass is just 'type'. Cheers, Nick. -- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia --------------------------------------------------------------- http://www.boredomandlaziness.org
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4