zoukankan      html  css  js  c++  java
  • Python之路【第十八篇】:模块知识

    模块,使用一些代码实现某个功能的代码集合,单独的.py文件或者是.py文件的集合就成为模块

    模块类型

    有三种类型的模块:

    • 内置模块:python自己提供的模块,如time模块,datatime模块等,这些模块存放在python安装路径下的Lib文件夹中
    • 自定义模块:自己编写的模块
    • 第三方模块:下载的别人已经写好的模块

    第三方模块安装方法汇总

    1、在IDE中安装

    file---->settings---->Project Interpreter

    进入上述页面后,在页面右边可以找到一个+号,点击+号,搜索需要的包,下载即可

    2、pip 安装

    python3中用pip3进行安装,所以需要先安装pip3,然而pip3依赖setuptools,所以需要先安装setuptools

    python3中默认自带pip3,这就方便了好多,注意要把pip3的路径放到环境变量中,要不在cmd窗口找不到

    pip install安装,如pip3 install requets

    pip uninstall卸载

    3、easy_inatall安装

    windows下,上述方法不好用时,使用easy_install安装第三方库:
    进入python安装目录下的Scripts文件夹,执行easy_install 模块名字
    即:

    cd /d d:/python_2.7.14.amd64/Scripts     这是自己的python安装路径
    easy_install module_name

    4、源码安装

    下载源码,将源码解压

    在cmd窗口下,进入源码含有setup.py的路径下

    python setup.py install

    5、Anaconda安装

    打开anaconda prompt,使用conda install命令进行安装

    将pycharm中的python环境改为anaconda下的python解释器即可。

    导入模块

    import sys,os同时引入两个模块,但是不建议这么做

    import modulename
    from modulename import function
    from lib.account import login(lib文件夹中有account.py文件,account文件中有login函数),也可以import lib.account
    在导入的时候可以通过as设置别名

    路径

    在pycharm中通过sys.path可以看到模块导入的路径,如果在前面的路径中发现了模块,后面的路径就不再搜寻了,所以在自定义模块时,不要与内置模块重名unction

    import sys
    print(sys.path)

    输出结果为:

    ['E:\PythonProject\Test1', 'E:\PythonProject\Test1', 'D:\python-3.5.4.amd64\python35.zip', 'D:\python-3.5.4.amd64\DLLs', 'D:\python-3.5.4.amd64\lib', 'D:\python-3.5.4.amd64', 'D:\python-3.5.4.amd64\lib\site-packages']
    这个就是模块的搜索路径,如果里面没有自己想要的路径,可以通过如下语句添加:

    sys.path.append()

    对于python,导入一个模块之后,下次再导入是失效的,已经在内存里面了,这时python的一个优化机制

    py文件的全局变量

    对于一个.py文件,执行print(vars()) 

    {'__spec__': None, '__name__': '__main__', '__package__': None, '__builtins__': <module 'builtins' (built-in)>, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001667E604C88>, '__doc__': None, '__cached__': None, '__file__': 'E:/PythonProject/Test1/模块/index.py'}

    __name__:如果是主文件,__name__=='__main__',否则等于模块名,执行的是哪个文件,__name__==__main__,否则等于模块名,常用来做一个判断,做主函数

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    import re
    print(re.__name__)
    print(__name__)
    输出结果为:
    re
    __main__

    调用主函数前,必须加if __name__ == '__main__':

    __loader__

    __file__:py文件自己的路径

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    #进行目录拼接,并且把新目录添加到sys.path中
    import os
    import sys
    
    # print(__file__)获取当前目录
    # print(os.path.dirname(__file__))获取到上一级目录
    
    temp = os.path.dirname(__file__)
    b = 'bin'
    new_path = os.path.join(temp,b)
    sys.path.append(new_path)

    __cached__:缓存,pyc文件,当前文件也为None

    __builtins__:内建函数

    __doc__:py文件的注释

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    '''
    文件的注释
    '''
    print(__doc__)
    输出结果为:文件的注释

    __spec__

    __package__:当前py文件在哪个文件夹下面,用点划分,当前文件为None

    这里需要详细整理的是(这两个最常用):

    1、主文件

    if __name__ == '__main__'

    2、__file__

    利用os.path.dir

    os.path.join

    3、内置函数在__builtins__里

    常用模块学习链接:点击这里

    三样东西有助于缓解生命的疲劳:希望、睡眠和微笑。---康德
  • 相关阅读:
    [Agc029D]Grid game_贪心
    [Agc029C]Lexicographic constraints_进制_二分答案_贪心
    [Agc029B]Powers of two_贪心_树形dp
    [Agc029A]Irreversible operation_逆序对
    [LuoguP1074]靶形数独_搜索
    umi react处理接口请求慢的问题
    typescript-类型
    bizcharts画图遇到的几个问题
    webpack 热更新原理
    webpack配置
  • 原文地址:https://www.cnblogs.com/ronghe/p/8806891.html
Copyright © 2011-2022 走看看