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
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to