tests/cpydiff/core_class_mro: Move under Classes, add workaround.
This commit is contained in:
parent
bfa68ef6b2
commit
b2979023ac
|
@ -0,0 +1,15 @@
|
||||||
|
"""
|
||||||
|
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.
|
||||||
|
"""
|
||||||
|
class Foo:
|
||||||
|
def __str__(self):
|
||||||
|
return "Foo"
|
||||||
|
|
||||||
|
class C(tuple, Foo):
|
||||||
|
pass
|
||||||
|
|
||||||
|
t = C((1, 2, 3))
|
||||||
|
print(t)
|
|
@ -1,15 +0,0 @@
|
||||||
"""
|
|
||||||
categories: Core
|
|
||||||
description: Method Resolution Order (MRO) is not compliant with CPython
|
|
||||||
cause: Unknown
|
|
||||||
workaround: Unknown
|
|
||||||
"""
|
|
||||||
class Foo:
|
|
||||||
def __str__(self):
|
|
||||||
return "Foo"
|
|
||||||
|
|
||||||
class C(tuple, Foo):
|
|
||||||
pass
|
|
||||||
|
|
||||||
t = C((1, 2, 3))
|
|
||||||
print(t)
|
|
Loading…
Reference in New Issue