我正在制作一个文本编辑器,可以在其中创建变量浏览器。所以我想做的是使用我的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}
答案 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