2015-03-03 16:45:39 +00:00
|
|
|
# tests basics of bound methods
|
|
|
|
|
|
|
|
# uPy and CPython differ when printing a bound method, so just print the type
|
|
|
|
print(type(repr([].append)))
|
|
|
|
|
|
|
|
class A:
|
|
|
|
def f(self):
|
|
|
|
return 0
|
|
|
|
def g(self, a):
|
|
|
|
return a
|
|
|
|
def h(self, a, b, c, d, e, f):
|
|
|
|
return a + b + c + d + e + f
|
|
|
|
|
|
|
|
# bound method with no extra args
|
|
|
|
m = A().f
|
|
|
|
print(m())
|
|
|
|
|
|
|
|
# bound method with 1 extra arg
|
|
|
|
m = A().g
|
|
|
|
print(m(1))
|
|
|
|
|
|
|
|
# bound method with lots of extra args
|
|
|
|
m = A().h
|
|
|
|
print(m(1, 2, 3, 4, 5, 6))
|
2017-01-20 02:17:22 +00:00
|
|
|
|
|
|
|
# can't assign attributes to a bound method
|
|
|
|
try:
|
|
|
|
A().f.x = 1
|
|
|
|
except AttributeError:
|
|
|
|
print('AttributeError')
|