栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

导入python模块而不实际执行

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

导入python模块而不实际执行

我尝试使用ast模块:

import ast# which syntax elements are allowed at module level?whitelist = [  # docstring  lambda x: isinstance(x, ast.Expr)   and isinstance(x.value, ast.Str),  # import  lambda x: isinstance(x, ast.import),  # class  lambda x: isinstance(x, ast.ClassDef),  # function  lambda x: isinstance(x, ast.FunctionDef),]def validate(source, required_functions):  tree = ast.parse(source)  functions = set()  required_functions = set(required_functions)  for item in tree.body:    if isinstance(item, ast.FunctionDef):      functions.add(item.name)      continue    if all(not checker(item) for checker in whitelist):      return False  # at least the required functions must be there  return len(required_functions - functions) == 0if __name__ == "__main__":  required_funcs = [ "init", "execute", "cleanup" ]  with open("/tmp/test.py", "rb") as f:    print("yay!" if validate(f.read(), required_funcs) else "d'oh!")


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/640419.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号