12.10 练习
12-1.路径搜索和搜索路径。路径搜索和搜索路径之间有什么不同?
12-2.导入属性。假设你的模块mymodule里有一个foo()函数。
(a)把这个函数导入到你的名称空间有哪两种方法?
(b)这两种方法导入后的名称空间有什么不同?
12-3.导入“import module”和“fromn module import*”有什么不同?
12-4.名称空间和变量作用域。名称空间和变量作用域有什么不同?
12-5.使用import()。
(a)使用import把一个模块导入到你的名称空间。你最后使用了什么样的语法?
(b)和上边相同,使用import()从指定模块导入特定的名字。
12-6.扩展导入。创建一个importAs()函数。这个函数可以把一个模块导入到你的名称空间,但使用你指定的名字,而不是原始名字。例如,调用newname=importAs(‘mymodule’)会导入mymodule,但模块和它的所有元素都通过新名称newname或newname.attr访问。这是Python 2. 0引入的扩展导入实现的功能。
12-7.导入钩子。研究PEP 302的导入钩子机制。实现你自己的导入机制,允许编码你的模块(encryption、bzip2、rot13等),这样解释器会自动解码它们并正确导入。你可以参看zip文件导入的实现(参阅第12.5.7节)。
当前内容版权归 wizardforcel 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 wizardforcel .