Browse Source
Doc: Do not encourage using a base class name in a derived class (GH-22177)
pull/22856/head
Andre Delfino
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
6 additions and
6 deletions
-
Doc/faq/programming.rst
|
|
|
@ -1517,18 +1517,18 @@ order` (MRO) with ``type(self).__mro__``, and return the next in line after |
|
|
|
How can I organize my code to make it easier to change the base class? |
|
|
|
---------------------------------------------------------------------- |
|
|
|
|
|
|
|
You could define an alias for the base class, assign the real base class to it |
|
|
|
before your class definition, and use the alias throughout your class. Then all |
|
|
|
You could assign the base class to an alias and derive from the alias. Then all |
|
|
|
you have to change is the value assigned to the alias. Incidentally, this trick |
|
|
|
is also handy if you want to decide dynamically (e.g. depending on availability |
|
|
|
of resources) which base class to use. Example:: |
|
|
|
|
|
|
|
BaseAlias = <real base class> |
|
|
|
class Base: |
|
|
|
... |
|
|
|
|
|
|
|
BaseAlias = Base |
|
|
|
|
|
|
|
class Derived(BaseAlias): |
|
|
|
def meth(self): |
|
|
|
BaseAlias.meth(self) |
|
|
|
... |
|
|
|
... |
|
|
|
|
|
|
|
|
|
|
|
How do I create static class data and static class methods? |
|
|
|
|