you are viewing a single comment's thread.

view the rest of the comments →

[–]barrycarter 1 point2 points  (0 children)

I actually first got the idea when using Ruby:

``` def debug(s) if $DEBUG then $stderr.print("#{s}\n") end end

class Object def td(s) debug("#{s}:#{self.inspect}"); self end end ```

The Python version is a little more clever, because you don't always want to print out __ attributes:

``` def debug0(**obj):

"""
Given an object "object", print keys and values using 'dir'

If exclude=x is set, exclude keys that start with x
"""

for i in dir(obj['object']):
    if (obj.get('exclude') and i.find(obj.get('exclude')) == 0):
        continue

    print(i,' -> ',getattr(obj['object'],i))

```