From Wiki
Revision as of 06:48, 5 July 2012 by Deoren (talk | contribs) (Copy/paste & minor edits)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

My notes on Python
Module Structure and Layout

From Core Python Programming , 2E (3.4.1)

  1. Startup line (Unix)
  2. module documentation
  3. module imports
  4. variable declarations (Global)
  5. class declarations
  6. function declarations
  7. "main" body
Generating GUIDs
  import uuid

Default Arguments

Evaluated only once

From the [Python documentation]:

Important warning: The default value is evaluated only once. This makes a difference when the default is a mutable object such as a list, dictionary, or instances of most classes. For example, the following function accumulates the arguments passed to it on subsequent calls:

def f(a, L=[]):
    return L

print f(1)
print f(2)
print f(3)

This will print:

[1, 2]
[1, 2, 3]

If you don’t want the default to be shared between subsequent calls, you can write the function like this instead:

def f(a, L=None):
    if L is None:
        L = []
    return L

Mutable defaults trap

From: Python Gotchas, Mutable defaults for function/method arguments

You should never, never, NEVER use a list or a dictionary as a default value for an argument to a class method. Unless, of course, you really, really, REALLY know what you're doing

Misc References




 * Python Gotchas ([[1]] or [[2]])
 * [Pitfalls]
 * [Pythons Attack]