I'm looking over the yaesu_clone superclass with FT1D subclass as a suggested example. I'm confused by the conflicting naming conventions. In yaesu_clone.py line 231 the superclass begins with these class fields:

    VENDOR = "Yaesu"
    NEEDS_COMPAT_SERIAL = False
    _model = b"ABCDE"

Why are the first two all caps, but the third is lowercase with a leading underscore? Is this documented somewhere that I missed?

Normally, a leading underscore means the variable is local to the current scope and shouldn't be accessed outside of it. But in this case, VENDOR and _model are both overridden in the subclass. I didn't think that a subclass still counts as local. Also, normally all caps means it's a constant. Yet, again, the VENDOR gets overridden. So, to my mind all of these variables should be lowercase with no leading underscore. Just "vendor", just "model". (Or, leading underscores with corresponding @property accessors.)

(signed) Confused in Las Vegas 😮




Virus-free.www.avg.com