Python中的解析方法变量名称?

use*_*424 2 python

鉴于python函数:

def MyPythonMethod(value1, value2):
    # defining some variables 
    a = 4
    myValue = 15.65
    listValues = [4, 67, 83, -23]

    # doing some operation on the list
    listValues[0] = listValues[1]       

    # looping through the values
    for i in listValues:
        print i 
Run Code Online (Sandbox Code Playgroud)

我怎样才能提取namestypes在方法所有的变量MyPythonMethod

理想情况下,我希望获得所有变量名称及其类型的方法名称.例如,方法的输出MyPythonMethod将如下所示:

varNames = ["a", "myValue", "listValues", "i"]

varTypes = ["int", "float", "list", "float"]

有任何想法吗?

Ste*_*ski 7

1变量在python中没有类型.对象具有类型,变量指向对象.

[2]您可以使用inspect模块获取有关函数内部的信息.阅读文档 - 他们会告诉您可以检查的内容.例如,MyPythonMethod.func_code.co_varnames将为您提供本地变量名称.(请注意,MyPythonMethod,如定义的,实际上是一个函数,而不是一个方法.)

[3]但即使你得到局部变量的名称,除了在执行函数时,它们不会绑定到任何对象.值4绑定到函数中的局部变量'a' - 在调用函数之前和之后,没有'a'并且它没有绑定到任何东西.

[4]如果在调试器中运行该函数,则可以在任何时候停止执行并检查函数中创建的变量和对象.

[5]如果函数引发异常,则可以捕获异常并在异常时访问函数的某些状态.