给出python代码:
import sys
import os
def MyPythonMethod(value1, value2):
# defining some variables
a = 4
myValue = 15.65
listValues = [4, 67, 83, -23]
# check if a file exists
if ( os.path.exists('/home/hello/myfile.txt') ):
pass
# doing some operation on the list
listValues[0] = listValues[1]
# check if a file exists
print sys.path
# looping through the values
for i in listValues:
print i
如何在函数names
中提取所有外部方法的MyPythonMethod
?
理想情况下,我想获取正在调用的所有外部方法/成员的列表。
对于MyPythonMethod
,这将返回:
moduleNames = ["os", "sys"]
methodsInvoked = ["os.path.exists", "sys.path"]
(是的,我知道'path'是sys
的成员,而不是方法;但我认为你明白了这一点。
有什么想法吗?
答案 0 :(得分:1)
你不可能完全知道什么功能(在你的情况下我们谈论的是普通函数,而不是方法,因为方法是类的成员函数),函数将在不解析它的情况下调用,因为它可以动态地执行,并且它们的名称可能取决于调用函数时导入到全局命名空间的内容。
但是您可以通过检查MyPythonMethod.func_code.co_names
来查看函数引用的模块和函数名称。在您的情况下,此属性将返回元组('os', 'path', 'exists', 'sys')
。