gpt4 book ai didi

python - 如何使用正则表达式查找调用自身的函数?

转载 作者:太空宇宙 更新时间:2023-11-04 10:57:18 25 4
gpt4 key购买 nike

我有一个code.py:

def funA():
print('A')
funA()

def funB():
print('B')

def funC():
print('C')
funB()
funC()

我想找到所有调用自己的函数:

funA
funC

如何编写正则表达式

约束:

  • 所有函数调用正常:funname(arg1, arg2, ...)
  • 无混淆方式(如lambdaexec)
  • 没有间接递归

最佳答案

这很难,因为函数可以以混淆的方式调用自身。例如,这算不算?

def funA():
print 'A'
foo = funA
foo()

funA()

这个呢?

def funA():
funB()

def funB():
funA()

funA()

甚至这个?

def funA():
exec('Anuf'[::-1] + '()')

funA()

我不认为你可以用正则表达式来做到这一点。


即使考虑到您的新编辑,即使不是不可能,也仍然非常困难。以这个函数为例。

def funA():
if 1 + 1 == 2:
return
funA()

我建议您听从 Ignacio Vazquez-Abrams 的建议并查看 ast .

关于python - 如何使用正则表达式查找调用自身的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8721514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com