如果我理解正确,可以用两种方式使用python语法const afterSlash = str => str.substr(str.lastIndexOf('/') + 1);
const unique = (obj, i, arr) => arr.lastIndexOf(obj) === i;
function prune(...valid) {
return str => str.split(', ')
.map(afterSlash)
.filter(unique)
.filter(obj => valid.includes(obj));
}
const list = "application/pdf, application/x-pdf, application/acrobat, applications/vnd.pdf, text/pdf, text/x-pdf, application/ppt, application/vnd.ms-powerpoint";
const simplify = prune("pdf", "ppt");
const result = simplify(list);
我想了解一下Python 内部如何处理这两种不同的形式。例如,想象一下,解释器得到“来自A导入B”,解释器是否实际上试图确定A是否是包名/模块名,还是内部将包和模块视为同一类对象(像Linux一样对待文件和目录非常相似)?
答案 0 :(得分:-1)
首先,模块是一个包含类和函数的python文件。当你说来自一个导入B python在标准的python库中搜索A(一个模块),然后导入B(函数或类),如果它找到A则是模块。如果它没有,它就会消失在存储包的目录中开始搜索并搜索包名(A),然后如果找到它,则导入模块名称(B)。如果它在过去的2个进程中失败,则返回错误。
希望这有帮助。