python我想return一个file里所有的函数名,可是总出错,如图
展开全部
import re
import sys
def function_name(f):
t = f.read()
names = re.findall(r"def (.+?)\(", t)
return names
def main():
names = None
if len(sys.argv) > 1:
with open(sys.argv[1]) as f:
names = function_name(f)
else:
names = function_name(sys.stdin)
print(names)
main()
用正则表达式就很方便了
这段代码可以从命令行接收一个文件名, 也可以从stdin直接读.
python代码传进去, function名字在一个列表里传出来
顺带提一下, 你的题目说的是这个function接收一个TextIOWrapper, 所以你不应该再open
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数以冒号结束,不是以")“结束
追问
还是不行啊。。。
追答
endswith(":")
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果有lambda咋办,先dir—下,再判断是否callable可能更方便
追问
什么是lambda?刚学python
追答
比如:
a=lambda x:x*2
同样定义了一个函数
你要分析的文件是test.py
import test
for i in dir(test):
if callable(getattr(test,i)):
print i
这样就列出了所有函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询