Python Forum
how can a function find the name by which it is called?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
how can a function find the name by which it is called?
#18
Skaperen Wrote:with this i would need to parse the line (not too hard) and determine which name this call was (much harder).
You can walk a line with the ast module to find all the expressions that were called in the line
>>> line = "print(f'woot {foo()},{bar(456)}',flush=True)\n"
>>> import ast
>>> p = ast.parse(line)
>>> for node in ast.walk(p):
...     if isinstance(node, ast.Call):
...         print(ast.unparse(node.func))
... 
print
foo
bar
other example
>>> line = "xyz[0](spam, bar.x[1].egg(3))"
>>> p = ast.parse(line)
>>> for node in ast.walk(p):
...     if isinstance(node, ast.Call):
...         print(ast.unparse(node.func))
... 
xyz[0]
bar.x[1].egg
Note: ast.unparse() needs Python >= 3.9. For earlier pythons, there is an «astunparse» module in Pypi.
Reply


Messages In This Thread
RE: how can a function find the name by which it is called? - by Gribouillis - Aug-22-2022, 07:24 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Multiple variable inputs when only one is called for ChrisDall 2 584 Oct-20-2023, 07:43 PM
Last Post: deanhystad
  Couldn't install a go-game called dlgo Nomamesse 14 3,797 Jan-05-2023, 06:38 PM
Last Post: Nomamesse
  Error in find pearson correlation function erneelgupta 1 1,997 Mar-01-2022, 03:41 PM
Last Post: stevendaprano
  function with 'self' input parameter errors out with and without 'self' called dford 12 3,434 Jan-15-2022, 06:07 PM
Last Post: deanhystad
  pdfminer package: can't find exgtract_text function Pavel_47 7 5,595 Jan-25-2021, 03:31 PM
Last Post: Pavel_47
  What is this formatting called? Mark17 2 1,884 Dec-14-2020, 08:42 PM
Last Post: snippsat
  Spyder Quirk? global variable does not increment when function called in console rrace001 1 2,342 Sep-18-2020, 02:50 PM
Last Post: deanhystad
  How do I find if a function has been defined? AndyHolyer 3 2,407 Jul-24-2020, 01:39 PM
Last Post: Gribouillis
  Class Instances called in the wrong order IanIous 4 3,029 Mar-06-2020, 02:16 PM
Last Post: IanIous
  How to find a zero of this function? kkitti93 4 3,956 Jan-16-2020, 08:44 AM
Last Post: kkitti93

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020