| Tor Norbye | 3a2425a | 2013-11-04 10:16:08 -0800 | [diff] [blame^] | 1 | class A(object): |
| 2 | def s(self, v): |
| 3 | self._v = v |
| 4 | |
| 5 | def g(self): |
| 6 | return self._v |
| 7 | |
| 8 | def d(self): |
| 9 | pass |
| 10 | |
| 11 | readonly = property(g) |
| 12 | writeonly = property(None, s) |
| 13 | readwrite = property(g, s, None, "Doc string") |
| 14 | deleteble = property(g,s,d) |
| 15 | |
| 16 | def eat(x): pass |
| 17 | |
| 18 | a = A() |
| 19 | |
| 20 | eat(a.readonly) |
| 21 | b = a.readonly |
| 22 | |
| 23 | <warning descr="Property 'readonly' cannot be set">a.readonly</warning> += 1 |
| 24 | del <warning descr="Property 'readonly' cannot be deleted">a.readonly</warning> |
| 25 | del <error descr="can't delete function call">a.readonly()</error> # Error, delete the result of function |
| 26 | |
| 27 | a.writeonly = 1 |
| 28 | <warning descr="Property 'writeonly' cannot be read">a.writeonly</warning> += 1 |
| 29 | b = <warning descr="Property 'writeonly' cannot be read">a.writeonly</warning> |
| 30 | del <warning descr="Property 'writeonly' cannot be deleted">a.writeonly</warning> |
| 31 | |
| 32 | b = a.readwrite |
| 33 | a.readwrite() |
| 34 | a.readwrite = 1 |
| 35 | a.readwrite += 1 |
| 36 | del <warning descr="Property 'readwrite' cannot be deleted">a.readwrite</warning> |
| 37 | |
| 38 | del a.deletable |
| 39 | |
| 40 | x += a.readonly #pass |