gvsig-scripting / org.gvsig.scripting / trunk / org.gvsig.scripting / org.gvsig.scripting.app / org.gvsig.scripting.app.mainplugin / src / main / resources-plugin / scripting / lib / pylint / test / functional / membership_protocol_py2.py @ 745
History | View | Annotate | Download (1001 Bytes)
1 |
# pylint: disable=missing-docstring,too-few-public-methods,no-init,no-self-use,unused-argument,pointless-statement,expression-not-assigned,undefined-variable
|
---|---|
2 |
|
3 |
# metaclasses that support membership test protocol
|
4 |
class MetaIterable(type): |
5 |
def __iter__(cls): |
6 |
return iter((1, 2, 3)) |
7 |
|
8 |
class MetaOldIterable(type): |
9 |
def __getitem__(cls, key): |
10 |
if key < 10: |
11 |
return key ** 2 |
12 |
else:
|
13 |
raise IndexError("bad index") |
14 |
|
15 |
class MetaContainer(type): |
16 |
def __contains__(cls, key): |
17 |
return False |
18 |
|
19 |
|
20 |
class IterableClass(object): |
21 |
__metaclass__ = MetaIterable |
22 |
|
23 |
class OldIterableClass(object): |
24 |
__metaclass__ = MetaOldIterable |
25 |
|
26 |
class ContainerClass(object): |
27 |
__metaclass__ = MetaContainer |
28 |
|
29 |
|
30 |
def test(): |
31 |
1 in IterableClass |
32 |
1 in OldIterableClass |
33 |
1 in ContainerClass |
34 |
1 in IterableClass() # [unsupported-membership-test] |
35 |
1 in OldIterableClass() # [unsupported-membership-test] |
36 |
1 in ContainerClass() # [unsupported-membership-test] |