zoukankan      html  css  js  c++  java
  • 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.主入口程序不能为顶层的模块。

        

      

         

            

      

  • 相关阅读:
    小错误
    创建表空间
    mysql
    myeclipse
    linux命令小结
    jquery
    java基础
    【学习笔记】【多项式】多项式插值相关_个人学习用
    SHUoj 神无月排位赛
    SHUoj 字符串进制转换
  • 原文地址:https://www.cnblogs.com/AYxing/p/8660891.html
Copyright © 2011-2022 走看看