circuitpython/tests/cpydiff/core_class_mro.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

20 lines
457 B
Python
Raw Permalink Normal View History

"""
categories: Core,Classes
description: Method Resolution Order (MRO) is not compliant with CPython
cause: Depth first non-exhaustive method resolution order
workaround: Avoid complex class hierarchies with multiple inheritance and complex method overrides. Keep in mind that many languages don't support multiple inheritance at all.
"""
2021-03-15 09:57:36 -04:00
class Foo:
def __str__(self):
return "Foo"
2021-03-15 09:57:36 -04:00
class C(tuple, Foo):
pass
2021-03-15 09:57:36 -04:00
t = C((1, 2, 3))
print(t)