Python3,我用这种方式讲解python模块,80岁的奶奶都说能理解。建议收藏 ~ ~

2023-10-30

1、引言

小屌丝:鱼哥,你看天上的月亮越来越圆了。
小鱼:唉~ 又是一年团圆夜,又是一年中秋节。
小屌丝:嘿嘿,可不滴, 这个中秋,你准备分享点啥知识嘞?
小鱼:嗯??
在这里插入图片描述

小屌丝:鱼哥,你这是啥表情嘛~
小鱼:我万万没想到,这么多年,你竟然…
小屌丝:鱼哥,我这不是想多学点知识嘛 ~
小鱼:有多远你轱辘多远…
小屌丝:嘿嘿 ~ ~ 鱼哥,你就来分享一个知识呗。
小鱼:你…说…啥…,我没听清…
小屌丝:我说,你给我讲讲啥是python模块呗。
小鱼:你…说… 要请我吃饭??
小屌丝:…只要你给我讲明白,那咱就去撸串。
小鱼:你早点这么大声说, 我不就开始整了嘛。

2、python模块详解

2.1 含义

什么是python模块, 就一句话:

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

换句话说:就是带.py后缀的可执行文件。
作用:用来重复调用变量和函数。

可以看这个示意图:
在这里插入图片描述

2.2 代码示例

我详细,写过项目的同学,都知道,如何来进行模块的封装及调用。
这里我就举个例子:
readcsv.py

# -*- coding:utf-8 -*-
# @Time   : 2022-09-01
# @Author : Carl_DJ

import csv
desction = 'csv读取函数'
print(desction)
def read_csv(path):
    with open(path, newline='') as csvfile:
        reader = csv.DictReader(csvfile)
        for i in reader:
            print(i)
            

调用方式: 直接通过import 导入 read_csv 函数即可

代码示例

#导入rad_csv模块
from readcsv import read_csv

#文件路径
file_path = './testfile.csv'
#运行
read_csv(file_path)

这就是一个简单的调用。
这样编写的好处,就是如果需要多个地方调用,
那么只需要编辑readcsv.py文件即可, 不需要重复单独的编译多次。

2.3 进阶

想一下, 如果我们在readcsv.py 文件中,添加 if name == “main” ,有什么 作用呢?

# -*- coding:utf-8 -*-
# @Time   : 2022-09-01
# @Author : Carl_DJ

import csv
desction = 'csv读取函数'
print(desction)
def read_csv(path):
    with open(path, newline='') as csvfile:
        reader = csv.DictReader(csvfile)
        for i in reader:
            print(i)

if __name__ == '__main__':
    print(f'运行此脚本函数')
            

我们运行结果看一下:
在这里插入图片描述
解析:

  • __main__始终指当前执行模块的名称(包含后缀.py);
  • __name__是内置变量,当该模块被直接执行的时候, __name__等于文件名(包含后缀 .py )
  • 如果该模块 import 到其他模块中,则该模块的 __name__等于模块名称(不包含后缀.py)

所以,

  • 所以当直接执行脚本时候,name == "main"为真成立,可以继续执行后面代码;
  • 而当import导入模块时候,name == "main"为假,不成立,无法执行后面代码;

3、总结

看到这里, 今天的分享差不多就结束了。
更多的python内建模块,可以通过命令来查看:

help('modules')

查询结果

由于我安装的模块太多(含第三方模块),这里只展示一部分。

Cython              charset_normalizer  mailbox             send2trash
IPython             chunk               mailcap             servicemanager
MyQR                ci_info             main                setup_cython
PIL                 click               markupsafe          setuptools
PyInstaller         cmath               marshal             shape_infer_helper
PyPDF2              cmd                 math                shape_optimizer
PySimpleGUI         code                matplotlib          shelve
__future__          codecs              matplotlib_inline   shlex
_abc                codeop              mimetypes           shutil
_aix_support        collections         mistune             signal
_ast                colorama            mmap                simplejson
_asyncio            colorsys            mmapfile            site
_asyncio_d          commctrl            mmsystem            six
_bisect             commonmark          modulefinder        skimage
_blake2             compare_bert_results mouseinfo           smtpd
_bootlocale         compileall          msgpack             smtplib
_bootsubprocess     concurrent          msilib              sndhdr
_bz2                configobj           msvcrt              sniffio
_bz2_d              configparser        multidict           socket
_cffi_backend       contextlib          multipart           socketserver
_codecs             contextvars         multiprocessing     socks
_codecs_cn          convert_longformer_to_onnx nbclient            sockshandler
_codecs_hk          convert_tf_models_to_pytorch nbconvert           some_reportlab_snippets
_codecs_iso2022     convert_to_onnx     nbformat            soupsieve
_codecs_jp          copy                nest_asyncio        spacy_pkuseg
_codecs_kr          copyreg             netbios             spider
_codecs_tw          coreapi             netrc               sqlite3
_collections        coreschema          networkx            sre_compile
_collections_abc    corsheaders         nibabel             sre_constants
_compat_pickle      crispy_forms        nipype              sre_parse
_compression        cronlog             nisext              srsly
_contextvars        crontab             nntplib             ssl
_csv                crontabs            notebook            sspi
_ctypes             crypt               nt                  sspicon
_ctypes_d           css_html_js_minify  ntpath              starlette
_ctypes_test        cssselect           ntsecuritycon       stat
_ctypes_test_d      cssutils            nturl2path          statistics
_datetime           csv                 numba               storemagic
_decimal            ctypes              numbers             string
_decimal_d          curl2py             numpy               stringprep
_distutils_hack     curses              odbc                struct
_elementtree        cv2                 onnx_exporter       subprocess
_elementtree_d      cycler              onnx_model          suit
_functools          cython              onnx_model_bart     sunau
_hashlib            cythonmagic         onnx_model_bert     symbol
_hashlib_d          dataclasses         onnx_model_bert_keras sympyprinting
_heapq              datetime            onnx_model_bert_tf  symtable
_imp                dateutil            onnx_model_gpt2     sys
_io                 dbi                 onnxruntime         sysconfig
_json               dbm                 opcode              tablib
_locale             dde                 openapi_codec       tabnanny
_lsprof             debugpy             openpyxl            tarfile
_lzma               decimal             operator            telnetlib
_lzma_d             decorator           operator_type_usage_processors tempfile
_markupbase         defusedxml          optimizer           tenacity
_md5                diff_match_patch    optparse            termcolor
_msi                difflib             ordlookup           terminado
_msi_d              dis                 orjson              test
_multibytecodec     distutils           ort_flatbuffers_py  testpath
_multiprocessing    django              ort_model_processor tests
_multiprocessing_d  doctest             os                  textwrap
_opcode             docutils            packaging           this
_operator           docx                pandas              threading
_osx_support        docxcompose         pandocfilters       tifffile
_overlapped         docxtpl             parity_check_helper time
_overlapped_d       dot_parser          parser              timeit
_peg_parser         email               parso               timer
_pickle             encodings           past                tkinter
_py_abc             encutils            pathlib             token
_pydecimal          ensurepip           pdb                 tokenize
_pydev_bundle       entrypoints         pdfkit              tornado
_pydev_comm         enum                pefile              tqdm
_pydev_imps         errno               pendulum            trace
_pydev_runfiles     et_xmlfile          perfmon             traceback
_pydevd_bundle      etelemetry          peutils             tracemalloc
_pydevd_frame_eval  fastapi             pickle              traitlets
_pyinstaller_hooks_contrib faulthandler        pickleshare         traits
_pyio               ffmpy               pickletools         treedir
_pyrsistent_version ffmpy3              pikepdf             tty
_queue              filecmp             pip                 turtle
_queue_d            filediff            pipes               turtledemo
_random             fileinput           pkg_resources       types
_sha1               filelock            pkgutil             typing
_sha256             filetype            platform            typing_extensions
_sha3               fire                playwright          unicodedata
_sha512             fitz                plistlib            unicodedata_d
_shaded_ply         flask               poplib              unittest
_shaded_thriftpy    flatbuffers         posixpath           uritemplate
_signal             float16             pprint              url_normalize
_sitebuiltins       fnmatch             premailer           urllib
_socket             formatter           profile             urllib3
_socket_d           formtools           profiler            utils
_sqlite3            fractions           prometheus_client   uu
_sqlite3_d          frontend            prompt_toolkit      uuid
_sre                frozenlist          prov                uvicorn
_ssl                ftplib              pstats              uwsgiconf
_ssl_d              functools           pty                 uwsgify
_stat               fusion_attention    pvectorc            validate
_statistics         fusion_base         py2exe              venv
_string             fusion_biasgelu     pyPdf               warnings
_strptime           fusion_embedlayer   py_compile          watchdog
_struct             fusion_fastgelu     pyautogui           watermarker
_symtable           fusion_gelu         pyclbr              wave
_testbuffer         fusion_gelu_approximation pycompletionserver  wcwidth
_testbuffer_d       fusion_gpt_attention pycparser           weakref
_testcapi           fusion_gpt_attention_megatron pydantic            webbrowser
_testcapi_d         fusion_gpt_attention_no_past pydev_app_engine_debug_startup webencodings
_testconsole        fusion_layernorm    pydev_console       websockets
_testconsole_d      fusion_options      pydev_coverage      werkzeug
_testimportmultiple fusion_reshape      pydev_ipython       wheel
_testimportmultiple_d fusion_shape        pydev_pysrc         widgetsnbextension
_testinternalcapi   fusion_skiplayernorm pydev_test_pydevd_reload win2kras
_testinternalcapi_d fusion_utils        pydev_tests         win32_setctime
_testmultiphase     future              pydev_tests_mainloop win32api
_testmultiphase_d   gc                  pydev_tests_python  win32clipboard
_thread             gdown               pydevconsole        win32com
_threading_local    generate_test_data  pydevd              win32con
_tkinter            genericpath         pydevd_concurrency_analyser win32console
_tkinter_d          getopt              pydevd_file_utils   win32cred
_tracemalloc        getpass             pydevd_plugins      win32crypt
_uuid               gettext             pydevd_pycharm      win32cryptcon
_uuid_d             gevent              pydevd_tracing      win32ctypes
_version            glob                pydoc               win32event
_virtualenv         gpt2_beamsearch_helper pydoc_data          win32evtlog
_warnings           gpt2_beamsearch_tester pydot               win32evtlogutil
_weakref            gpt2_helper         pyee                win32file
_weakrefset         gpt2_parity         pyexpat             win32gui
_win32sysloader     gpt2_tester         pyexpat_d           win32gui_struct
_winapi             graphlib            pyforest            win32help
_winxptheme         greenlet            pygetwindow         win32inet
_xxsubinterpreters  gridfs              pygments            win32inetcon
_yaml               gzip                pylab               win32job
_zoneinfo           h11                 pymatting           win32lz
_zoneinfo_d         hashlib             pymongo             win32net

bert_perf_test      jsonschema          reprlib             wkhtmltopdf
bert_test_data      jupyter             requests            wsgiref
binascii            jupyter_client      requests_cache      xdrlib
binhex              jupyter_core        requests_cache_mongodb xlrd
bisect              jupyterlab_pygments rest_framework      xlsxwriter
bleach              jupyterlab_widgets  rest_framework_swagger xlwings
bs4                 keyword             retcode             xml
bson                kiwisolver          retrying            xmlrpc
builtins            lib                 reversion           xxsubtype
bz2                 lib2to3             rich                yaml
cProfile            libfuturize         rlcompleter         yarl
cachetools          libpasteurize       rmagic              zhdate
calendar            linecache           runfiles            zipapp
catalogue           llvmlite            runpy               zipextimporter
cattr               locale              sched               zipfile
cattrs              logging             scipy               zipfile36
cchardet            loguru              scripts             zipimport
certifi             longformer          secrets             zlib
cffi                longformer_helper   select              zmq
cgi                 lxml                select_d            zoneinfo
cgitb               lzma                selectors           
chardet             machine_info        selenium            

当然了,如果想看内建函数,也可以直接点击跳转:

我是小鱼

关注我,带你学习更多更专业更有趣的Python知识。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3,我用这种方式讲解python模块,80岁的奶奶都说能理解。建议收藏 ~ ~ 的相关文章

随机推荐

  • 机器学习系列(9)——XGBoost算法

    XGBoost算法挺复杂的 要多读几遍论文 梳理算法思路 本文希望有助于理解这个算法 0x01 XGBoost简介 XGBoost即 Extreme Gradient Boosting 极端梯度提升 或者叫极值梯度提升 XGBoost所应用
  • 时序预测

    时序预测 MATLAB实现BO NARX贝叶斯优化非线性自回归外生模型和BO LSTM贝叶斯优化长短期记忆神经网络股票价格预测比较 目录 时序预测 MATLAB实现BO NARX贝叶斯优化非线性自回归外生模型和BO LSTM贝叶斯优化长短期
  • 单片机延时程序分析

    5课 单片机延时程序分析 上一次课中 我们已经知道 程序中的符号R7 R6是代表了一个个的RAM单元 是用来放一些数据的 下面我们再来看一下其它符号的含义 DELAY MOV R7 250 6 D1 MOV R6 250 7 D2 DJNZ
  • 当前所处的经济周期位置和未来资本市场展望

    当前所处的经济周期位置和未来资本市场展望 pdf 省时查方案 专业 及时 全面的营销策划方案库 免费下载 2023年8月份全网热门报告合集 ChatGPT提词示例 让你的ChatGPT聪明100倍 超百页干货资料 AI应用的难点 痛点与未来
  • 国内镜像源(阿里、网易、清华、中科大) ubuntu20.04下载地址超快

    1下载ubuntu系统镜像的国内源地址 一个不行换一个 下载ubuntu系统镜像的国内源地址 超快 国内镜像源 阿里 网易 清华 中科大 ubuntu20 04下载地址 清华源 https mirrors tuna tsinghua edu
  • Python小游戏项目《唐僧大战白骨精》1.0版

    小游戏 唐僧大战白骨精 1 身份选择 显示提示信息 欢迎光临 xxx 游戏 请选择你的身份 1 xxx 2 xxx 请选择 x 根据用户选择来分配身份 显示不同的提示消息 1 2 3 2 游戏进行 显示玩家的基本信息 攻击力 生命值 显示玩
  • 学习SQL Server推荐的10本书

    今天在sqlmag上闲逛 看到了这篇一年前写的文章 正好在看其中的一本 推荐给大家 原文地址 Top 10 Highly Recommended SQL Server Books 第一本 SQL Server 2014介绍 微软出品 主要介
  • 与国自然焦虑对线的感悟

    一 写在前面 连续申请了三年的国自然青年基金 今年终于中了 双非高校 三无人员 投的医学基础口 但我的研究本底并不是基础研究方向 算是小跨领域了 因此前两年一直在陪跑 二 出师不利 第一年信心满满 然后被现实无情毒打 直接emo了2天 主要
  • comsol 多物理场仿真流程-以开关柜为例

    1 主要方法 在SolidWorks中对于开关柜的内部与外部结构进行建模 生成能够导入软件计算的3D模型 将SolidWorks中的模型导入comsol软件中 设置参数进行多物理场耦合仿真 1 具体步骤 删除高压开关柜中对其内部电磁环境无较
  • 如何使用Qt软件实现一个圆形按钮

    要使用Qt软件实现一个圆形按钮 可以按照以下步骤进行操作 使用以上步骤 你就可以在Qt软件中实现一个圆形按钮 记得根据自己的需要调整按钮的样式和布局 在Qt的项目中创建一个新的QPushButton控件 或者使用现有的QPushButton
  • JAVA实现CSV文件转List

    首先来说说解决问题的思路 先创建一个类Test来接收csv文件中的内容 然后通过解析csv文件 讲内容转换为List
  • 今天给一个shopify网站修改了一下

    今天的客户是浙江的 他们没有设计稿 给了我一个需要模仿的网站 要求是把自己的商品详情页搞成和对标网站一样的 这个事情两天给搞定了 他们很满意 对标网站是一个卖狗粮的 他们是卖玩具的 哈哈 但是因为没有设计稿 修修补补了很多地方 还要求在页面
  • 装载问题(回溯法)

    1 具体问题 一批集装箱共n个要装上2艘载重量分别为c1和c2的轮船 其中集装箱i的重量为Wi且W1 W2 Wn lt c1 c2 试确定一个合理的装载方案使这n个集装箱装上这两艘轮船 2 问题分析 容易去证明 如果一个装载问题有解 则采用
  • 什么软件做可视化大屏最简单、最快?

    做可视化大屏的工具有很多 但要说什么软件做可视化大屏最简单 最快 那必然是BI系统 特别是国产BI系统奥威BI 奥威BI系统能提供大量的模板功能 精简操作 提高效率 而且采用的是零编程 即点击 拖拉拽这样的方式来制作报表 使用门槛低 即使是
  • ros1 bag to ros2 bag play

    有个问题是 ros1格式的bag需要转到ros2格式的bag 怎么弄 需要注意的是 这里只能提供标准信息的rosbag转换 如果带有自定义msg的rosbag 应该是不可以的 请注意一下 解决办法 安装依赖 sudo apt install
  • 【IDEA】对于IDEA出现程序包无法找到或者js代码无法加载问题的6种解决方案

    前言 在平时做项目时 我们有时候会出现各种奇奇怪怪的bug 标题所列举的这两种情况我都遇到过 搜的博客解决方案也很多都是一样的 今天我就给大家汇总一下解决方案 一 如果你是使用maven管理项目 在idea右上角能够看到Maven 点击Ma
  • java 比较两个类_Java 中有没有直接可以判断两个类是否相同的方法?

    展开全部 java没有直接判e5a48de588b662616964757a686964616f31333337623436断两个雷是否相同 但提供了如下方法 1 如果说两个对象的判断可以使用 equals 或者 2 如果判断对象是否某个类
  • JVM知识点(二)

    1 G1垃圾收集器 XX MaxGCPauseMillis 10 G1的参数 表示在任意1s时间内 停顿时间不能超过10ms G1将堆切分成很多小堆区 Region 每一个Region可以是Eden Survivor或Old区 这些区在内存
  • 三种memcached的JAVA客户端比较

    Memcached客户端程序 Memcached的java客户端已经存在三种了 官方提供的基于传统阻塞io由Greg Whalin维护的客户端 DustinSallings实现的基于java nio的Spymemcached XMemcac
  • Python3,我用这种方式讲解python模块,80岁的奶奶都说能理解。建议收藏 ~ ~

    Python模块讲解 1 引言 2 python模块详解 2 1 含义 2 2 代码示例 2 3 进阶 3 总结 1 引言 小屌丝 鱼哥 你看天上的月亮越来越圆了 小鱼 唉 又是一年团圆夜 又是一年中秋节 小屌丝 嘿嘿 可不滴 这个中秋 你