有没有一种方法可以让Python中的import语句具有自定义行为?如何?例如:
import "https://github.com/kennethreitz/requests"
import [email protected]
import requests@7322a09379565bbeba9bb40000b41eab8856352e
或者,如果不可能的话...可以通过函数调用的标准方式来实现吗?如何?例如:
import gitloader
repo = gitloader.repo("https://github.com/kennethreitz/requests")
requests = repo.from_commit("7322a09379565bbeba9bb40000b41eab8856352e")
为什么要执行此操作有两个原因。第一个原因是方便(Golang样式导入)。第二个原因是我需要对项目的插件模块进行加密验证。我正在使用Python 3.x
您实质上要问的是导入步骤的自定义。PEP 302使其成为可能,该产品带来了一些用于定制的挂钩。
该PEP当前不是您应该从中学习导入工作方式的来源;相反,请查看文档以获取该import
声明以供参考。那里说:
Python包含许多默认的查找器和导入器。第一个知道如何找到内置模块,第二个知道如何找到冻结的模块。第三个默认查找器在导入路径中搜索模块。导入路径是可以命名文件系统路径或zip文件的位置的列表。它也可以扩展为搜索任何可定位的资源,例如URL标识的资源。
导入机制是可扩展的,因此可以添加新的查找器以扩展模块搜索的范围和范围。
简而言之,您需要定义适当的查找程序(以查找所需的模块)和适当的加载程序以加载这些模块。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句