Aug-11-2017, 01:59 PM
You can access it bye
A quick demo of name mangling.
has class variable
hw._HWClass__classvar
not hw.__classvar
.>>> hw = HWClass() >>> hw._HWClass__classvar 3 >>> hw._HWClass__classvar = 4 >>> hw._HWClass__classvar 4As mention there is nothing private in Python.
__
would say it should not be used before understanding what's it's used for(name mangling).A quick demo of name mangling.
class HWClass: def __init__(self): self.__classvar = 3 # Not private, it's for name mangling class HW(HWClass): def __init__(self): super().__init__() self.__classvar = 3Now if use Class HW,
has class variable
classvar
been named mangled(not overwritten).>>> hw = HW() # Both have been given different name(name mangling) >>> hw._HWClass__classvar 3 >>> hw._HW__classvar 3 # Change one will not change the other >>> hw._HWClass__classvar = 100 >>> hw._HWClass__classvar 100 >>> hw._HW__classvar 3It's take some chaining to learn it the Python way,when coming from Java.