将txt文件中的所有函数体存储在python的字典中
我正在尝试做代码分析器应用程序,我有一个包含 python 代码的 txt 文件,我现在的目标是将这个 txt 文件中的所有函数保存在类的字典中,但我不知道如何才能首先
,我创建名为 class CodeAnalyzer:
的类
def __init__(self, file):
self.file = file
self.file_string = ""
self.file_func= {}
self.errors = {}
,并且我想将函数保存在 self.file_func= {} 中
,这是流程步骤,每个方法都应该返回键以及属性的增值
def process_file(self):
for i, line in enumerate(self.file):
self.file_string += line
self.check_divide_by_zero(i, line)
self.check_parameters_num(i, line)
这是我试图做的但 ie 失败了:
def store_function(self,i,line):
if(line.startswith('def')):
self.file_func.setdefault(i,[]).append((self.file_string[file_string.index(':') ,:]))
有人对此有想法或帮助吗?
I'm trying to do code analyzer app and i have a txt file that contains a python code and my goal now is to save all functions in this txt file in dictionary in the class, but i don't have any idea how can i do it
at first i create class that name is class CodeAnalyzer:
def __init__(self, file):
self.file = file
self.file_string = ""
self.file_func= {}
self.errors = {}
and i want to save function in self.file_func= {}
this is process step, every method should return key and value added to attributes
def process_file(self):
for i, line in enumerate(self.file):
self.file_string += line
self.check_divide_by_zero(i, line)
self.check_parameters_num(i, line)
This what i tried to do but ie's failed :
def store_function(self,i,line):
if(line.startswith('def')):
self.file_func.setdefault(i,[]).append((self.file_string[file_string.index(':') ,:]))
Any one have an Idea or help on it ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您只需使用
exec()
,并将其 globals() 字典设置为类实例的命名空间。如果您还有其他问题,请随时对此答案发表评论。
You can just use
exec()
with it's globals() dict set to your class instance's namespace.Feel free to comment on this answer if you have further questions.
我认为 isinstance 检查应该是
我们想要测试 self.namespace 的第 i 个元素,而不是 i 的值。
I think the isinstance check should be
we want to test the i-th element of the self.namespace, not the value of i.