By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,907 Members | 1,963 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,907 IT Pros & Developers. It's quick & easy.

Need to generate some functions.

P: n/a
Given a list of names

ll = ("n1", "n2", "n3", "n4")

I want to create a pair of functions based off of each name. An example of
what I want to happen would look like this:

def mkn1dict(address):
return {'Address': address, 'Control': SOME_CONST}

def mkn1Classobj(address):
return Classobj( mkn1classobj(address) )

I know how to do this in a preprocessor, but I'd like to do it directly in
python. Can this be done?

TIA
--
Time flies like the wind. Fruit flies like a banana. Stranger things have .0.
happened but none stranger than this. Does your driver's license say Organ ..0
Donor?Black holes are where God divided by zero. Listen to me! We are all- 000
individuals! What if this weren't a hypothetical question?
steveo at syslang.net
Aug 17 '07 #1
Share this Question
Share on Google+
1 Reply


P: n/a
you can use the dictionary returned by the built in function vars, along
the lines of
>>vars()["foo"] = lambda x: 3*x
foo(2)
6

but polluting your name space with data counts as bad style and will
probably bite you at some point -- you probably are better of putting
closures in a dictionary:
>>def mkdict(address):
def something():
return {'Address': address, 'Control': "SOME_CONST"}
return something
>>mk = {}
mk["n1"] = mkdict("n1")
mk["n1"]()
{'Control': 'SOME_CONST', 'Address': 'n1'}


Steven W. Orr wrote:
Given a list of names

ll = ("n1", "n2", "n3", "n4")

I want to create a pair of functions based off of each name. An example
of what I want to happen would look like this:

def mkn1dict(address):
return {'Address': address, 'Control': SOME_CONST}

def mkn1Classobj(address):
return Classobj( mkn1classobj(address) )

I know how to do this in a preprocessor, but I'd like to do it directly
in python. Can this be done?

TIA

Aug 17 '07 #2

This discussion thread is closed

Replies have been disabled for this discussion.