python核心编程-第12章课后练习答案

第一题:

路径搜索和搜索路径。路径搜索和搜索路径之间有什么不同?

解答:前者是指查找某个文件的操作,后者是去查找一组目录。

第二题:

导入属性。假设你的模块mymodule里有一个foo()函数。

(a)把这个函数导入到你的名称空间有哪两种方法?

import mymodule
from mymodule import foo

(b)这两种方法导入后的名称空间有什么不同?

解答:第一种将mymodule里的属性全部导入,第二种只导入foo

第三题:

导入“import module”和“from module import*”有什么不同?

解答:调用from-import可以把名字导入当前的名称空间里去,这意味着你不需要使用属性/句点属性标识来访问模块的标识符。

第四题:

名称空间和变量作用域。名称空间和变量作用域有什么不同?

解答:名称空间是纯粹意义上的名字和对象间的映射关系,而作用域还指出了从用户代码的哪些物理位置可以访问到这些名字。

第五题:

使用__import__()。

(a)使用__import__把一个模块导入到你的名称空间。你最后使用了什么样的语法?

__import__('sys')
    (b)和上边相同,使用__import__()从指定模块导入特定的名字。

__import__('sys',globals(),locals(),['path']


第六题:

扩展导入。创建一个importAs()函数。这个函数可以把一个模块导入到你的名称空间,但使用你指定的名字,而不是原始名字。例如,调用newname=importAs(‘mymodule’)会导入mymodule,但模块和它的所有元素都通过新名称newname或newname.attr访问。这是Python 2. 0引入的扩展导入实现的功能。

 
def importAs(module):
    newname = __import__(module)
    retrun newname

第七题:

导入钩子。研究PEP 302的导入钩子机制。实现你自己的导入机制,允许编码你的模块(encryption、bzip2、rot13等),这样解释器会自动解码它们并正确导入。你可以参看zip文件导入的实现(参阅第12.5.7节)。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值