1.1 --- a/tests/attributes2.py Sun Sep 28 21:27:01 2008 +0200
1.2 +++ b/tests/attributes2.py Sun Sep 28 21:42:03 2008 +0200
1.3 @@ -3,60 +3,25 @@
1.4 def e(x): pass
1.5
1.6 class C:
1.7 - def h(self):
1.8 - self.m = self.f
1.9 - return self.m # not known
1.10 - def g(self):
1.11 - return self.f # C.f with context self
1.12 - def f(self): pass
1.13 e = e
1.14
1.15 def test(self):
1.16 self.e()
1.17 - self.f()
1.18 - self.g()
1.19 - self.h()
1.20
1.21 class D:
1.22 e = C.e
1.23 - f = C.f
1.24 - def g(self):
1.25 - return self.f # D.f with context preserved
1.26 - def h(self):
1.27 - self.m = self.f
1.28 - return self.m # not known
1.29
1.30 def test(self):
1.31 - self.e(1)
1.32 - self.f(2)
1.33 - self.g()
1.34 - self.h()
1.35 + self.e(1) # TypeError: unbound C.e needs C instance, not int
1.36
1.37 class E(C):
1.38 - def g(self):
1.39 - return self.f # C.f with context self
1.40 - def h(self):
1.41 - self.m = self.f
1.42 - return self.m # not known
1.43 -
1.44 def test(self):
1.45 self.e()
1.46 - self.f()
1.47 - self.g()
1.48 - self.h()
1.49 -
1.50 -C.f
1.51 -D.f
1.52 -E.f
1.53
1.54 c = C()
1.55 d = D()
1.56 e = E()
1.57
1.58 -x = c.f # bound C.f == c.h() == c.g()
1.59 -y = d.f # unbound C.f == d.h() == d.g()
1.60 -z = e.f # bound E.f == e.h() == e.g()
1.61 -
1.62 p = c.e # bound C.e
1.63 q = d.e # unbound C.e
1.64 r = e.e # bound E.e