Embedding classes' names
DL Neil
PythonList at DancesWithMice.info
Mon Jul 15 20:15:58 EDT 2019
When used, do you embed a class's name within its own code, as a literal?
In the thread "super or not super?", the OP asked:
<<<
C1.__init__(self) or
super().__init__()
>>>
One of the answers recommended super() [agreed!] in order to avoid
embedding "C1" into the code. The explanation: in case the name of the
parent class is ever changed.
Which is eminently reasonable (remember, the parent class may be in a
separate file, and thus few "cues" to remember to inspect and amend
sub-classes' code!)
So, what about other situations where one might need to access the
class's own name or that of its/a super-class? eg
class C2(C1):
def __init__(self, fred, barney ):
super().__init__( fred )
self.barney = barney
def __repr__( self ):
return f"C2( { self.fred }, { self.barney }"
### note: 'common practice' of "C2" embedded as constant
How 'purist' do you go, cf YAGNI?
--
Regards,
=dn
More information about the Python-list
mailing list