Hi All, thanks for the comments and yes I am a tad confused and a little out of my comfort zone with what I am trying to achieve here. Is this below any better way (or even worse?) of trying to achieve this. Though this doesn't actually achieve what I want it to, it may nonetheless highlight the concept in principle?
def funcA(runfromB=False): if runfromB is False:"running from funcA" # print only if running from funcA print "running from funcA or funcB" #print when running from either function if runfromB is True: "running from funcB" # print only when running from funcB def funcB(runfromB): funcA(runfromB=runfromB) funcB(runfromB=True) On 6 March 2014 20:37, Jerry Hill <malaclyp...@gmail.com> wrote: > On Thu, Mar 6, 2014 at 12:00 PM, Jignesh Sutar <jsu...@gmail.com> wrote: > > Hi I'm trying to exclude a certain line of code if the function is > called by > > another function, see illustration below: > > As other have said, this is not often a good idea. That said, it is > possible to inspect the call stack to see what called a particular > function, like this (python 3.3): > > iimport inspect > > def funcA(): > caller = inspect.stack()[1][3] > print('funcA was called by ' + caller) > if caller == '<module>': > print("running from funcA")# print only if running from funcA > if caller in ('<module>', 'funcB'): > print("running from funcA or funcB") # print when running from > either function > if caller == 'funcB': > print("running from funcB") # print only when running from funcB > > def funcB(): > funcA() > > print('----- Calling funcA() directly -----') > funcA() > print('----- Calling funcB() -----') > funcB() > > Output: > > >>> > ----- Calling funcA() directly ----- > funcA was called by <module> > running from funcA > running from funcA or funcB > ----- Calling funcB() ----- > funcA was called by funcB > running from funcA or funcB > running from funcB > >>> > > > -- > Jerry >
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor