On Thursday, 27 December 2012 10:22:15 UTC+5:30, Tim Roberts wrote: > Abhas Bhattacharya <abhasbhattachar...@gmail.com> wrote: > > > > > >While I am defining a function, how can I access the name (separately as > > >string as well as object) of the function without explicitly naming > > >it(hard-coding the name)? > > >For eg. I am writing like: > > >def abc(): > > > #how do i access the function abc here without hard-coding the name? > > > > Why? Of what value would that be? > > > > Note that I'm not merely being obstructionist here. What you're asking > > here is not something that a Python programmer would normally ask. The > > compiled code in a function, for example, exists as an object without a > > name. That unnamed object can be bound to one or more function names, but > > the code doesn't know that. Example: > > > > def one(): > > print( "Here's one" ) > > > > two = one > > > > That creates one function object, bound to two names. What name would you > > expect to grab inside the function? > > > > Even more obscure: > > > > two = lamba : "one" > > one = two > > > > Which one of these is the "name" of the function? > > -- > > Tim Roberts, t...@probo.com > > Providenza & Boekelheide, Inc.
It is of quite value to me. Because I have this situation: I have used a dictionary with "function_name":value pair in the top of the code. Now when some function is called, I need to print the value assigned to its name in the dictionary (the functions are defined after the dictionary). Now there is only one bad way-around for me: I need to hard-code the name in the function like this: def function_name(): print(dict_name.get("function_name")) but ofcourse it is a bad thing to do because I have a lot of this type of functions. It would be better if I can can use the same code for all of them, because they are all essentially doing the same thing. Now, for your questions: If i call one() and two() respectively, i would like to see "one" and "two". I dont have much knowledge of lambda functions, neither am i going to use them, so that's something I cant answer. -- http://mail.python.org/mailman/listinfo/python-list