Paul Sokolovsky
11 years ago
3 changed files with 47 additions and 37 deletions
@ -0,0 +1,26 @@ |
|||
class Base1: |
|||
def __init__(self, *args): |
|||
print("Base1.__init__", args) |
|||
|
|||
class Clist1(Base1, list): |
|||
pass |
|||
|
|||
a = Clist1() |
|||
print(len(a)) |
|||
# Not compliant - list assignment should happen in list.__init__, which is not called |
|||
# because there's Base1.__init__, but we assign in list.__new__ |
|||
#a = Clist1([1, 2, 3]) |
|||
#print(len(a)) |
|||
|
|||
print("---") |
|||
|
|||
class Clist2(list, Base1): |
|||
pass |
|||
|
|||
# Not compliant - should call list.__init__, but we don't have it |
|||
#a = Clist2() |
|||
#print(len(a)) |
|||
|
|||
# Not compliant - should call list.__init__, but we don't have it |
|||
#a = Clist2([1, 2, 3]) |
|||
#print(len(a)) |
@ -0,0 +1,21 @@ |
|||
class Base1: |
|||
def __init__(self, *args): |
|||
print("Base1.__init__", args) |
|||
|
|||
class Ctuple1(Base1, tuple): |
|||
pass |
|||
|
|||
a = Ctuple1() |
|||
print(len(a)) |
|||
a = Ctuple1([1, 2, 3]) |
|||
print(len(a)) |
|||
|
|||
print("---") |
|||
|
|||
class Ctuple2(tuple, Base1): |
|||
pass |
|||
|
|||
a = Ctuple2() |
|||
print(len(a)) |
|||
a = Ctuple2([1, 2, 3]) |
|||
print(len(a)) |
@ -1,37 +0,0 @@ |
|||
class Base1: |
|||
def __init__(self, *args): |
|||
print("Base1.__init__",args) |
|||
|
|||
class Clist1(Base1, list): |
|||
pass |
|||
|
|||
class Ctuple1(Base1, tuple): |
|||
pass |
|||
|
|||
a = Clist1() |
|||
print(len(a)) |
|||
a = Clist1([1, 2, 3]) |
|||
print(len(a)) |
|||
|
|||
a = Ctuple1() |
|||
print(len(a)) |
|||
a = Ctuple1([1, 2, 3]) |
|||
# TODO: Faults |
|||
#print(len(a)) |
|||
|
|||
print("---") |
|||
|
|||
class Clist2(list, Base1): |
|||
pass |
|||
|
|||
class Ctuple2(tuple, Base1): |
|||
pass |
|||
a = Clist2() |
|||
print(len(a)) |
|||
a = Clist2([1, 2, 3]) |
|||
print(len(a)) |
|||
|
|||
#a = Ctuple2() |
|||
#print(len(a)) |
|||
#a = Ctuple2([1, 2, 3]) |
|||
#print(len(a)) |
Loading…
Reference in new issue