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