• python-模块、包


    1、什么是模块?

      1.一个.py就是一个模块。

      2.有什么好处?  

        提高可维护性;避免函数变量名冲突。

      3.如何分类:  

        内置            ——Python安装时就已经自带,如:sys 、os....

           第三方开源 ——世界各地开发者贡献的py文件,通过 pip install 安装

           自定义         ——自己写的py文件

          注意:导入模块即相当于执行了模块。

      4.如何调用的?

         import module :直接导入模块

       from module import xx :在模块中导入某个函数   

       from module import xx as xx :导入某个函数时并且把他重命名,方便以后调用时简写。

       from module.xx.xx import * :导入全部的函数

      5.模块的查找路径: ‘’,从当前py的目录找——》从python自带和第三方库的路径找

        只要在一个目录下匹配到,就立刻导入,不再往后找。

      6.开源模块的安装:

        pip install命令,安装好了,用import xx 就可以调用。

    2. 什么是包?

      1.包——就是把相关功能的.py文件放在同一个文件夹下,这个文件夹就叫包。

      2.不同包之间的模块要怎样导入?

        form 包名 import xx

      3.包的路径下要有(__init__.py)这个文件,来标识这个文件夹是一个包。

    3.包的导入

      跨包导入

        现在想在manage.py 导入 crm目录下views.py

        

    from crm import view

        为什么能直接导入? 由于环境变量里已经添加到‘’,这个代表了把当前文件夹的路径添加到环境变量里,所以编译器可以直接导入。    

      跨模块导入

        现在想在crm下的view.py 导入proj下的setting.py ,要怎样做?

          1.如果直接在view.py下直接写from proj import setting

          2.运行的话会报错,说找不到模块。

          3.为什么?  是因为编译器会从在当前路径下找proj这个目录。

          4.可以通过添加环境变量,把路径添加到环境变量中就可以了。

     在view.py里添加下面的语句

    import os, sys
    
    # 1.通过__file__那个views.py文件的绝对路径,
    # 2.通过os.path.abspath(__file__)获得views.py文件真正的绝对路径
    # 3.通过os.path.dirname命令往上走一层,获得crm的路径,
    # 4.然后把绝对路径添加到环境变量就可以从proj导入settings.py 模块
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  # 获取真正的绝对路径
    sys.path.append(BASE_DIR)
    print(sys.path)
    from proj import setting 

      绝对导入、相对导入

     绝对导入:

     把路径加入到环境变量列表,这样叫绝对路径的导入。

      

      

    相对导入:

    通过使用..来导入

    有两点要求:

    1.必须有__init__.py来标识这个文件夹是一个包,而不是普通文件夹。

    2.主入口程序不能为顶层的模块。

        

      

         

            

      

  • 相关阅读:
    图片不能显示
    Lambda表达式where过滤数据
    存储文本到一个文件里
    获取用户临时文件夹路径
    判断某一个字符串是否存在另一个字符串中
    使用反射为特性赋值
    字符串与数据流之间的转换
    控制台应用程序获取计算机名
    重复输出字符或字符串
    使用HashSet<>去除重复元素的集合
  • 原文地址:https://www.cnblogs.com/AYxing/p/8660891.html
Copyright © 2020-2023  润新知