12 months ago | Paul Boddie | file changeset files shortlog | Prevent inadvertent mutation of function/method arguments. | value-replacement |
paul@815 | 1 | f = lambda x: (x, 1) |
paul@815 | 2 | |
paul@999 | 3 | g = lambda x: x.f |
paul@999 | 4 | |
paul@999 | 5 | h = lambda x: x(234) |
paul@999 | 6 | |
paul@815 | 7 | class C: |
paul@815 | 8 | f = lambda x: (x, 2) |
paul@815 | 9 | |
paul@815 | 10 | print f(123) # (123, 1) |
paul@815 | 11 | |
paul@815 | 12 | c = C() |
paul@815 | 13 | print c.f # __main__.C.$l0 |
paul@815 | 14 | print c.f(123) # (123, 2) |
paul@815 | 15 | |
paul@815 | 16 | c.f = f |
paul@815 | 17 | print c.f(123) # (123, 1) |
paul@815 | 18 | |
paul@815 | 19 | C.f = f |
paul@815 | 20 | c2 = C() |
paul@815 | 21 | print c2.f(123) # (123, 1) |
paul@999 | 22 | |
paul@999 | 23 | print g # __main__.C.$l1 |
paul@999 | 24 | print g(c) # __main__.C.$l0 |
paul@999 | 25 | |
paul@999 | 26 | a = g(c) |
paul@999 | 27 | print a(123) # (123, 1) |
paul@999 | 28 | |
paul@999 | 29 | print h(a) # (234, 1) |