zoukankan      html  css  js  c++  java
  • Python进阶03 模块

    我们之前看到了函数和对象。从本质上来说,他们都是为了更好的组织已经有的程序,以方便重复利用。

    模块(module)也是为了同样的目的。在Python中,一个.py文件就构成了一个模块,你可以调用其他文件中的程序。

    引入模块

    我们先写一个filsrt.py 文件,内容如下:

    def laugh():

      print 'hahahahahah'

    再写一个second.py 并引入first中的程序:

    improt first

    for i in range(10):

      first.laugh()

    在second.py中,我们使用了first.py中定义的laugh()函数。

    引入模块后,可以通过模块.对象的方式来调用引入模块中的某个对象。上面例子中,first为引入的模块,laugh()是我们所引入的

    的对象。Python中还有其他的引入方式,

    import a as b  # 引入模块a ,并将模块a重命名为b

    from a import function1  # 从模块a中引入function1对象。调用a中对象时,我们不用再说明模块,即直接使用function1,而不是

    a.function1

    from a import *    # 从模块a中引入所有对象,调用a中对象时,我们不用再说明模块,即直接使用对象,而不是a.对象。

    这些引用方式,可以方便后面的程序书写。

    搜索路径

    Python 会在一下路径中搜索它想要寻找的模块:

    1.程序所在的文件夹

    2.标准库的安装路径

    3.操作系统环境变量PYTHONPATH所包含的路径

    如果你有自定义的模块,或者下载的模块,可以根据情况放在相同的路径,以便Python可以找到。

    模块包

    可以将功能相似的模块放在同一个文件夹(比如说this_dir)中,构成一个模块包.通过

    import this_dir.module

    引入 this_dir 文件夹中的module模块。

    该文件夹中必须包含一个__init__.py的文件,提醒Python,该文件夹为一个模块包。__init__.py 可以是一个空文件。

    总结

    import module 

    module.object 

    __init__.py

  • 相关阅读:
    BZOJ 1412: [ZJOI2009]狼和羊的故事
    Bzoj 2443: [Usaco2011 Open]奇数度数
    Bzoj 1101: [POI2007]Zap
    BZOJ 2186: [Sdoi2008]沙拉公主的困惑
    BZOJ 4804: 欧拉心算 欧拉函数
    Luogu P3121 [USACO15FEB]审查(黄金)Censoring (Gold)
    Luogu P3000 [USACO10DEC]牛的健美操Cow Calisthenics
    BZOJ 2060: [Usaco2010 Nov]Visiting Cows 拜访奶牛
    BZOJ 3297: [USACO2011 Open]forgot
    BZOJ 2456: mode
  • 原文地址:https://www.cnblogs.com/simadongyang/p/8228393.html
Copyright © 2011-2022 走看看