zoukankan      html  css  js  c++  java
  • 初识python: 模块定义及调用

    一、定义

     模块:用来从逻辑上组织python代码(变量、函数、类、逻辑:实现一个功能),本质就是.py结尾的python文件(比如:文件名:test.py,对应的模块名:test)

     包:用来从逻辑上组织模块的,本质就是一个目录,且必须带有__init__.py的文件

    二、导入模块方法

     方法一:import 模块名                                             =》导入模块中的函数、变量等
     方法二:import 模块名1,模块名2                           =》导入模块中的函数、变量等
     方法三:from 模块名 import *                                   =》导入模块中的所有内容
     方法四:from 模块名 import 变量/函数等 as 别名    =》导入模块中的变量、函数并给一个别名

    三、import本质
     导入模块的本质就是把python文件解释一遍
     导入包的本质就是执行该包下的__init__.py文件

    四、添加环境变量

    import os,sys
    print('当前目录的相对路径:',__file__)  # 获取当前目录的相对路径
    print('当前目录的绝对路径:',os.path.abspath(__file__))  # 获取当前目录的绝对路径
    print('当前目录的上级目录:',os.path.dirname(__file__))  # 返回当前文件的上级目录
    
    BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  # 获取当前目录的上上级目录
    sys.path.append(BASE_PATH)  # 添加环境变量
    # sys.path.insert(0,BASE_PATH)  # 指定位置插入环境变量,不建议这么用

    五、示例

      注:以下所有导入模块操作,都在main.py执行。

      目录结构如下:

                                  

     1、导入单个模块:

    import module_1  # import 导入单个模块
    print(module_1.name)  # 调用模块中的变量
    module_1.say_hello()  # 调用模块中的方法

     2、导入多个模块:

    import module_1,module_2  # 导入多个模块
    module_1.say_hello()
    module_2.regin()

     3、导入模块中的所有内容:

    from module_1 import * #导入模块中的所有内容,不建议此用法
    print(name)

     4、导入模块变量并指定别名

    from module_1 import name as lzh_name  #  使用别名
    name = 'module_test'
    print(name)
    print(lzh_name)

     5、导入包,即:执行该包下的__init__.py文件

    import os,sys
    BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    sys.path.append(BASE_PATH)  # 末尾位置添加环境变量
    # sys.path.insert(0,BASE_PATH)  # 指定位置插入环境变量,不建议这么用
    import package_test

      package_test下_init_内容:

    #!/user/bin env python
    # author:Simple-Sir
    # time:2019/8/20 21:46
    # import test1
    from . import test1  # . 从当前目录导入模块
    print('from the packg packgtest.')

     6、导入包,并调用模块:

    import os,sys
    BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    sys.path.append(BASE_PATH)  # 末尾位置添加环境变量
    # sys.path.insert(0,BASE_PATH)  # 指定位置插入环境变量,不建议这么用
    import package_test
    package_test.test1.test()

     7、优化导入模块:

       比如:重复使用module_2.regin()时:

    from module_2 import regin
    
    def func1():
        regin()
        print('in the func1')
    
    def func2():
        regin()
        print('in the func2')
  • 相关阅读:
    Moq4在.NET3.5和.NET4版本之间的差异
    TDD中的迭代
    洛谷 3413 萌数
    割点(tarjan)
    hdu-4507 吉哥系列故事——恨7不成妻
    hdu-3709 Balanced Number
    poj-3252 Round Numbers
    hdu 1007 Quoit Design 分治求最近点对
    LA 3905 Meteor 扫描线
    uva 11464
  • 原文地址:https://www.cnblogs.com/simple-li/p/11387279.html
Copyright © 2011-2022 走看看