"Alan Gauld" <[EMAIL PROTECTED]> wrote > public/private is overkill. I actually like the Delphi 2 model > (they have since added protected etc) was a good compromise > where implementation section(*) attributes
Oops! I meant to add a footnote here that explained that Delphi modules comprise two sections, an interface and an implementation. Only functions declared in the interface can be used by clients of the module. I often think that this scheme would be a useful addition to Python's module structure. It would look something like this: #### module foo #### interface: def myfunc(p1,p2) def anotherFunc(p3) class bar: def __init__(...) def f(self) def g(self,x) mylist = [] # can be used by clients implementation: secretVar = {} # hidden from clients def myfunc(p1,p2): #code here can use secretVar def anotherFunc(p3): # code here class bar: def __init__(self): self.x = 42 # etc... ######################### Its fairly easy to understand and provides a good mix of access control and readability without tying the programmers hands. It also means you can very easily see all that a module has to offer by just reading the top (relatively) few lines of code. It thus gives the advantages of C header files without the problems of managing/synchronising two files per module. All IMHO of course... :-) Alan G. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor