https://docs.python.org/2/tutorial/classes.html#tut-private
“Private” instance variables that cannot be accessed except from inside an
object don’t exist in Python.
However, there is a convention that is followed
by most Python code: a name prefixed with an underscore (e.g. _spam) should
be treated as a non-public part of the API (whether it is a function, a method
or a data member). It should be considered an implementation detail and subject
to change without notice.
Since there is a valid use-case for class-private members (namely to avoid name
clashes of names with names defined by subclasses), there is limited support for
such a mechanism, called name mangling. Any identifier of the form
__spam (at least two leading underscores, at most one trailing underscore)
is textually replaced with _classname__spam, where classname is the
current class name with leading underscore(s) stripped. This mangling is done
without regard to the syntactic position of the identifier, as long as it
occurs within the definition of a class.
Virtual class:
The virtual function provides the ability to define a function in a base class and have a function of the same name and type in a derived class called when a user calls the base class function.
In C++ terminology, normally class members (including the data members) are
public (except see below Private Variables and Class-local References), and all member functions are
virtual.
No comments:
Post a Comment