zoukankan      html  css  js  c++  java
  • Python(28)---模块和包的基本概念

    一、模块

    定义:在python中,一个 .py 文件就称为一个模块

    使用模块的好处:最大的好处就是提高了代码的可维护性

    分类(三种):

    • python标准库
    • 第三方模块
    • 应用程序自定义模块


    模块导入方法:

    #cal.py
    def add(x,y)
        return x + y
    def sub(x,y)
        return x - y 

    1. import 语句

    import module1[, module2[,.... moduleN]]

    #举例:

    #test.py

    import cal
    print(cal.add(3,5))
    print(cal.sub(3,5))

    注意:
    import 做了两件事情:一是运行cal函数;第二是引入变量名

    2. from...import 语句

    from modulename import name1[, name2[, ... nameN]]

    注意:
    这个声明不会把整个modulename模块导入到当前的命名空间中,
    只会将它里面的name1或者name2单独引入到执行这个声明的模块的全局符号表。

    #举例:

    #test.py

    from cal import add
    from cal import sub 
    print(add(3,5))    
    print(sub(3,5))

    3. from...import*语句

    from modulename import*
    #举例:
    #test.py

    from cal import*
    print(add(3,5))    
    print(sub(3,5))

    (*代表一切,但是不推荐这种模块导入方式)

    关于路径的补充:

    当我们使用import语句时,python解释器是怎么样找到对应的文件的?
    答案是解释器有自己的搜索路径,存在 sys.path里。

    import sys
    print(sys.path)

    #存放的是执行文件的路径

    二、包(package)

    1. 基本概念

    为了避免模块名相同带来的冲突,python引入按照目录组织模块的方法,称为包(package)

    每个包目录下面都会有有个 __init__.py 的文件,这是区别普通目录的。如果没有__init__.py ,则不是一个包

    __init__.py 可以是空文件,也可以有python代码,因为__init__.py本身就是一个模块,而它的模块名就是对应包的名字

    引入包以后,只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突。

    2. 包之间多层点的调用

     

    举例:

    #main.py 
    def add(x, y):
        return x + y
    def sub(x, y):
        return x - y 

    调用方式一:

    #test.py
    from my_module.web1.web2.web3.main import sub
    print(sub(2,5))

    调用方式二:

    #test.py
    from my_module.web1.web2.web3 import main
    print(main.add(2,5))

    注意:包只要被调用,就是执行该包的 __init__.py 文件

  • 相关阅读:
    bzoj 3155: Preprefix sum
    bzoj 1854: [Scoi2010]游戏
    UVA1608 不无聊的序列 Non-boring sequences
    UVA1747 【Swap Space】
    Luogu P5550 Chino的数列
    bzoj 1799: [Ahoi2009]self 同类分布
    bzoj 1054: [HAOI2008]移动玩具
    MATLAB工具箱,应用程序,软件和资源的精选清单
    论文格式排版Issue及解决办法
    《将博客搬至CSDN》
  • 原文地址:https://www.cnblogs.com/guoruxin/p/10130659.html
Copyright © 2011-2022 走看看