• 《Python核心编程》第二版第326页第十二章练习 Python核心编程答案自己做的


    这是自己做的练习,可能有错误,欢迎讨论和各种优化重构方案。

    12-1.
    路径搜索和搜索路径。路径搜索和搜索路径之间有什么不同。
    【答案】
    路径搜索(Search Path)搜索路径(Path Search),前者指查找某个文件的操作(the pursuit of a file),后者是去查找一组目录(through a set of directories)。本文来自博客园balian
    默认搜索路径是编译或者安装时指定。查看当前搜索路径参看下例。可以用列表的append()方法添加搜索路径。

    >>> import sys
    >>> sys.path
    ['', 'D:\\Python27\\python27.zip', 'D:\\Python27\\DLLs', 'D:\\Python27\\lib', 'D:\\Python27\\lib\\plat-win', 'D:\\Python27\\lib\\lib-tk', 'D:\\Python2
    7', 'D:\\Python27\\lib\\site-packages']
    >>>

    12-2.
    导入属性。假设你的模块mymodule里面有一个foo()函数。
    (a)把这个函数导入到你的名称空间有哪两种方法?
    (b)这两种方法导入后的名称空间有什么不同?
    【答案】
    (a)使用import语句(import module)和使用from-import语句(from module import)。避免使用from module import *语句。 
    (b)使用from-import语句,foo()被直接导入到局部名字空间去了,所以它必须被直接使用,而不能加上模块名的限定。
    如果用12-1题的sys模块中path()函数作为例子:
    采用第一种方法(import module)代码如下:

    >>> import sys
    >>> sys.path # 需要加上模块名的限定
    ['', 'D:\\Python27\\python27.zip', 'D:\\Python27\\DLLs', 'D:\\Python27\\lib', 'D:\\Python27\\lib\\plat-win', 'D:\\Python27\\lib\\lib-tk', 'D:\\Python2
    7', 'D:\\Python27\\lib\\site-packages']
    >>> path # 注意这里的错误,path()不可以直接使用
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'path' is not defined
    >>>


    采用第二种方法(from module import)代码如下:

    >>> from sys import path
    >>> sys.path # 主要这里的错误,不能加上模块名的限定
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'sys' is not defined
    #本文来自博客园balian
    >>> path # path()必须直接使用
    ['', 'D:\\Python27\\python27.zip', 'D:\\Python27\\DLLs', 'D:\\Python27\\lib', 'D:\\Python27\\lib\\plat-win', 'D:\\Python27\\lib\\lib-tk', 'D:\\Python2
    7', 'D:\\Python27\\lib\\site-packages']
    >>>

    【参考】
    python模块的导入的两种方式区别详解
    http://developer.51cto.com/art/201003/189555.htm

    python导入模块的三种方法
    http://www.docin.com/p-56218303.html

    12-3.
    导入“import module”和“from module import *”有什么不同?
    【答案】
    “from module import *”可以把指定模块的所有名称导入到当前的名称空间,但这种用法必须受到限制。参见本书317页。

  • 相关阅读:
    MQTT服务器搭建--Mosquitto用户名密码配置
    linux下c语言获取当前时间
    Linux下用C获取当前时间
    iptraf:一个实用的TCP/UDP网络监控工具
    CentOS配制FTP服务器,并且能用root权限登录
    centos6.4搭建ftp服务器
    两台Linux主机互传文件可以使用SCP命令来实现
    Linux 技巧:让进程在后台可靠运行的几种方法
    Linux 下 c 语言 聊天软件
    RobotFrameWork(五)控制流之if语句——Run Keyword If
  • 原文地址:https://www.cnblogs.com/balian/p/2633282.html
Copyright © 2020-2023  润新知