Home | Trees | Index | Help |
|
---|
Package harold :: Package prog :: Package interface :: Module interface_class :: Class InterfaceClass |
|
object
--+ |type
--+ |DefinitionsTracker
--+ | InterfaceClass
HaroldClass
A class with contractual interface.
The following python code illustrate the use ofInterfaceClass
:
class X (object): __metaclass__ = InterfaceClass p_ro = property (g) p_rw = property (g,s) def m (self, x, y=1, z=1) class O1 (X): p_ro = property (None,s) ## illegal: p_ro should be readable class O2 (X): p_ro = property (g,s) ## legal: p_ro is readable class O3 (X): p_rw = property (g) ## illegal: p_rw should be settable class O4 (X): def m (self) ## illegal: m should accept 2,3 or 4 parameters class O5 (X): def m (self, a, b, c) ## illegal: m should accept 2 or 3 parameters class O6 (X): def m (self, a) ## illegal: m should accept 3 or 4 parameters class O7 (X): def m (self, *args, **kw) ## legal: m does accept 2, 3 or 4 parameters
Method Summary | |
---|---|
__init__(cls,
cls_name,
direct_superclasses,
direct_members)
| |
Inherited from type | |
x.__call__(...) <==> x(...) | |
x.__cmp__(y) <==> cmp(x,y) | |
x.__delattr__('name') <==> del x.name | |
x.__getattribute__('name') <==> x.name | |
x.__hash__() <==> hash(x) | |
T.__new__(S, ...) -> a new object with type S, a subtype of T | |
x.__repr__() <==> repr(x) | |
x.__setattr__('name', value) <==> x.name = value | |
list of immediate subclasses |
__subclasses__() -> list of immediate subclasses |
list |
return a type's method resolution order |
Inherited from object | |
helper for pickle | |
helper for pickle | |
x.__str__() <==> str(x) |
Class Variable Summary | |
---|---|
Inherited from type | |
tuple |
__bases__ = (<type 'object'>,)
|
int |
__basicsize__ = 420 |
int |
__dictoffset__ = 132 |
int |
__flags__ = 21995 |
int |
__itemsize__ = 20 |
tuple |
__mro__ = (<type 'type'>, <type 'object'>)
|
str |
__name__ = 'type'
|
int |
__weakrefoffset__ = 184 |
Home | Trees | Index | Help |
|
---|
Generated by Epydoc 2.1 on Mon Dec 18 15:25:58 2006 | http://epydoc.sf.net |