view python/example/func_args.py @ 767:35f8751c0930

it is very annoying to have ones overrides overridden; see also http://stackoverflow.com/questions/25381304/why-type-cd-on-mac-os-states-that-cd-is-a-function
author Jeff Hammel <k0scist@gmail.com>
date Thu, 28 Jan 2016 14:02:17 -0800
parents e92bd004b906
children
line wrap: on
line source

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
get args of your own function

http://stackoverflow.com/questions/582056/getting-list-of-parameter-names-inside-python-function
"""

import argparse
import inspect
import os
import subprocess
import sys

def foo(bar=None, fleem=None, blah=None):
    frame = inspect.currentframe()
    args, _, _, values = inspect.getargvalues(frame)
    print 'function name "%s"' % inspect.getframeinfo(frame)[2]
    for i in args:
        print "    %s = %s" % (i, values[i])
    return [(i, values[i]) for i in args]

def main(args=sys.argv[1:]):

    parser = argparse.ArgumentParser()
    options = parser.parse_args(args)
    foo(1, 2, 3)

if __name__ == '__main__':
    main()