micropython: add micropython component
This commit is contained in:
53
components/language/micropython/tests/basics/class_super.py
Normal file
53
components/language/micropython/tests/basics/class_super.py
Normal file
@@ -0,0 +1,53 @@
|
||||
class Base:
|
||||
|
||||
def __init__(self):
|
||||
self.a = 1
|
||||
|
||||
def meth(self):
|
||||
print("in Base meth", self.a)
|
||||
|
||||
class Sub(Base):
|
||||
|
||||
def meth(self):
|
||||
print("in Sub meth")
|
||||
return super().meth()
|
||||
|
||||
a = Sub()
|
||||
a.meth()
|
||||
|
||||
# printing super
|
||||
class A:
|
||||
def p(self):
|
||||
print(str(super())[:18])
|
||||
A().p()
|
||||
|
||||
|
||||
# test compiler's handling of long expressions with super
|
||||
class A:
|
||||
bar = 123
|
||||
def foo(self):
|
||||
print('A foo')
|
||||
return [1, 2, 3]
|
||||
class B(A):
|
||||
def foo(self):
|
||||
print('B foo')
|
||||
print(super().bar) # accessing attribute after super()
|
||||
return super().foo().count(2) # calling a subsequent method
|
||||
print(B().foo())
|
||||
|
||||
# first arg to super must be a type
|
||||
try:
|
||||
super(1, 1)
|
||||
except TypeError:
|
||||
print('TypeError')
|
||||
|
||||
# store/delete of super attribute not allowed
|
||||
assert hasattr(super(B, B()), 'foo')
|
||||
try:
|
||||
super(B, B()).foo = 1
|
||||
except AttributeError:
|
||||
print('AttributeError')
|
||||
try:
|
||||
del super(B, B()).foo
|
||||
except AttributeError:
|
||||
print('AttributeError')
|
Reference in New Issue
Block a user