我想用python脚本从python文件中提取所有变量名,而无需编辑python文件

时间:2019-04-02 11:25:06

标签: python-3.x variables

我正在制作一个文本编辑器,可以在其中创建变量浏览器。所以我想做的是使用我的Python脚本(文本编辑器),我想从我的文本编辑器正在编辑的代码中获取所有变量名。

如果还不清楚,那么>我做了一个文本编辑器,如果用户正在使用我的编辑器编辑任何python文件,那么有一个函数可以从用户正在编辑的文件中提取所有变量。

如果可能的话,获取变量的所有值

谢谢。

我尝试使用vars(),但它不适用于字符串,因为我只能使用来获取字符串格式的文本     txt.get('1.0','end') 但我不是写。 我还尝试将vars()嵌入编辑文件(由用户编辑的文件)中 但是我没有得到任何好的结果,或者您可以说没有结果。

而且我不知道如何使用“ dir ”或如何在此脚本中使用它来获取变量名称。

所以我的预期结果是当用户按下按钮时,一个函数启动并从用户当前正在编辑的python文件中获取所有变量及其值。 像示例脚本一样

class example():
    def example_define():
        a=1
        b=2
        c=3

函数返回类似

{'a':1, 'b':2, 'c':3}

1 个答案:

答案 0 :(得分:1)

dir and __dict__有助于根据类型了解对象内部的所有属性。例如, 让我们考虑一下这段代码code.py

class example():
    def example_define(self):
        a=1
        b=2
        c=3
d = 1

def hello():
    print("world")

在另一个文件debug.py上,您可以尝试一下。

import code
print(code.__dict__) # prints a dictionary of all the attributes and their values.
print(dir(code)) # prints a list of all the attributes.

此外,如果您有对象o,则可以调用dir(o)来了解对象的属性。如果支持,则可以尝试o.__dict__


范围内的可用性

class Example():
    def example_define(self):
        self.a = 1
        self.b = 2
        self.c = 3

o = Example()
print(dir(o)) # Doesn't give a, b, c
o.example_define()
print(dir(o)) # Gives a, b, c