Keyword Named Args

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Fuzzyman

    #1

    Keyword Named Args

    A colleague and I have built a Validator object for use with ConfigObj
    and other general schema situations. A config file is used to store a
    schema that specifies how to test a value that it is valid.

    keyword=functio n(param1, param2)

    e.g. you could specify :
    size = range(30, 50)

    This means that the keyword 'size' must be an integer between 30 and
    50. There is a matching function stored in a dictionary that is called
    and the relevant arguments passed to it.

    The function name and parameters are parsed from the config file that
    defines the schema.

    args, fname = parsefunction(' range(30,50)')
    test = funcdict[fname](*args)

    What I can't easily see is any way of passing named keyword arguments
    to the function. Suppose we wanted to pass keyword=param to a function
    - is there any way of doing this ... obviously passing in
    'keyword=param' as text has entirely the wrong result......

    Anyone got any clues ? I suspect compiling the function into a code
    object will help.... but this is a slightly black art for me.

    Regards,

    Fuzzy
    http://www.voidspace.org.uk/python/index.shtml

  • Diez B. Roggisch

    #2
    Re: Keyword Named Args

    > What I can't easily see is any way of passing named keyword arguments[color=blue]
    > to the function. Suppose we wanted to pass keyword=param to a function
    > - is there any way of doing this ... obviously passing in
    > 'keyword=param' as text has entirely the wrong result......[/color]

    Im not sure if I understand you fully, but if what you are after is how to
    pass named parameters analog to positional args, do it as dict:

    def foo(name=None):
    print name

    foo(**{name: "Fuzzy"})


    --
    Regards,

    Diez B. Roggisch

    Comment

    Working...