Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Python (http://www.velocityreviews.com/forums/f43-python.html)
-   -   functions and named keyword arguments (http://www.velocityreviews.com/forums/t341823-functions-and-named-keyword-arguments.html)

Fuzzyman 02-21-2005 12:09 PM

functions and named keyword arguments
 
Sorry if this is a duplicate - I use the google interface and sometiems
it screws up (not showing stuff you've posted *or* not posting it).
Before you ask it's because at work I have no NNTP and *heavily*
restricted http.

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=function(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 relavant 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 02-21-2005 12:16 PM

Re: functions and named keyword arguments
 
> Sorry if this is a duplicate - I use the google interface and sometiems
> it screws up (not showing stuff you've posted *or* not posting it).
> Before you ask it's because at work I have no NNTP and *heavily*
> restricted http.


It is - so I requote my answer :)


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

Fuzzyman 02-22-2005 08:00 AM

Re: functions and named keyword arguments
 

Diez B. Roggisch wrote:
> > Sorry if this is a duplicate - I use the google interface and

sometiems
> > it screws up (not showing stuff you've posted *or* not posting it).
> > Before you ask it's because at work I have no NNTP and *heavily*
> > restricted http.

>
> It is - so I requote my answer :)
>
>
> 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"})
>


Brilliant - that's exactly what I was looking for.... thanks.

Regards,

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

> --
> Regards,
>
> Diez B. Roggisch




All times are GMT. The time now is 10:22 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.