On 12/28/19 5:35 PM, DL Neil via Python-list wrote:
Is it helpful to, and thus, do you have a style/convention for ordering the methods within each class in your code?


Python's "honking great idea" of namespaces enables us to gather functions/methods under a single name-umbrella, thereby avoiding name-clashes/name-space 'pollution'. [Oh yeah!]

Thus, if we collect a bunch of module-functions, we refer to them collectively by module-name/import-name, eg

    import collected_functions_module as cfm
    ...
    cfm.make_it_happen()
    cfm.make_it_better()

Similarly, methods within a class may be accessed either as class-methods, or through instances (as required).
[am assuming no code example necessary]

A major difference however, is that if our mythical collection of module-functions has an internal-reference, eg b() requires a(), then function a() MUST exist, ie be defined, 'before' function b(). Whereas a class's methods may be defined in any (complete) sequence.

If module function b calls function a in the same module, then a has to exist when b is CALLED, not before it is defined. Thus it is very possible to get a multi-function recursion where b() calls a() which then calls b(). (The existence of items mentioned within a function are looked up until that statement as actually executed)

as an example, in a module:

def b():

  a()

def a():

  pass

is perfectly valid.

Modules are a bit different, if module b needs resources from module a, it needs to import module a before it can use them. If module a also needs resources from module b, and imports it, then stuff from b might not be available while doing the running of module a that is defining the items in a.

--
Richard Damon

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to