当前位置: 首页 > news >正文

4.1 模块概述

1.Python结构

        工程 > 包 > 模块

        Python工程: “Python项目中最大的文件夹(本质就是一个文件夹)” --- 左侧的 CODE文件夹 为Python工程

        Python包: 本质就是一个文件夹,但是python包中具备具体的标识,如果没有标识则不能导入 --- 左侧的 01.Python基础 文件夹为python包

        Python模块: 每一个 .py 文件 --- 左侧的 1.1 变量.py 为Python模块

        2.Pytho包:

            特征:内部包含一个初始文件,文件名为: __init__.py     (双下划线)

       

        3.Pytho模块的分类:

            >.内置模块  Python解释器自带的  (random/math/date/funtools)

            >.自定义模块    自己写的所有.py文件

            >.第三方模块    必须通过外网下载才能导入

                PythonWeb开发: django/flask

                数据分析: pandas/numpy

                人工智能: sekitlearn

        4.导入模块

            -导入包

                import 包名

#导入包

import test_package     #导入Python包-导入模块方法一:import 包名.模块名 as 别名              该语句会将指定包下的模块导入到当前命名空间#   包名.模块名     使用时同样需要 包名.模块名 的形式来调用print("------------------------------导入模块1")import test_package.Hello1test_package.Hello1.show()           #wzw:12345#起别名 as ---print("------------------------------as")import test_package.Hello1 as hellohello.show()方法二:                                            前提:导入的模块要和当前空间同级import 模块名 as 别名                           此语句可以将整个模块导入到当前命名空间中

直接导入模块名      导入的模块必须和当前命名空间同级

import Hello2

Hello2.show()

方法三:                                                

                    from 包名1.子包名2.... import 模块名 as 别名            允许你从模块中导入特定的函数、类或变量到当前命名空间。导入后,使用时无需加模块名前缀。'''#   form 包名.子包名 import 模块名      从包中去导入一个模块, 运用最广from test_package import Hello1Hello1.show()                           #此方式是将 Hello1 模块整个导入到当前命名空间from test_package.Hello1 import showshow()                                 #此方式是从 Hello1 模块中仅导入 show 函数到当前命名空间from Hello2 import showshow()            #yst:6789    在 Hello2 中调用




5. __init__.py 文件的用法

        当包被导入时,__init__.py 中的代码会自动执行,常用于:

            >.定义包的公共接口

            >.初始化全局变量或配置

            >.执行包级别配置(如日志初始化)

'''

print(test_package.USERNAME)        #WangZhaoWei


 

test_package.test_connect_mysql()               # mysql数据库已连接....       连接数据库的函数


 

    6.动态导入包

        - import 导入模块原理:使用了内置函数 __import__()

#第一种方式 -- 不建议module_name = "random"          #将 random随机数库值传递给module_nameres = __import__(module_name)print(res.randint(1,50))            #在1-50中随机打印一个数字#第二种方式:导入动态导入的库import importlibmodule_name = "math"            #值传递 将math内置数模块传递给module_nameres = importlib.import_module(module_name)print(res.pi)               #3.141592653589793 打印出圆周率近似值


 

    7.导入模块占用内存问题

        无论导入多少次同一模块,都只占用同一内存地址

#测试导入模块内存问题import math as m1import math as m2import math as m3           #导入三次math比较其地址print(m1 is m2)     #Trueprint(m1 is m3)     #True       证明同一模块只会占用同一块地址

相关文章:

  • ubuntu22.04安装显卡驱动与cuda+cuDNN
  • BERT+CRF模型在命名实体识别(NER)任务中的应用
  • ElasticSearch深入解析(八):索引设置、索引别名、索引模板
  • 前端面经-VUE3篇--vue3基础知识(一)插值表达式、ref、reactive
  • 【Hive入门】Hive性能调优之Join优化:深入解析MapJoin与Sort-Merge Join策略
  • PHP-session
  • word交叉引用图片、表格——只引用编号的处理方法
  • Typora语法转换与Vue双向数据绑定:延迟更新机制的异曲同工之妙
  • Mybatis学习笔记
  • MSP430G2553驱动0.96英寸OLED(硬件iic)
  • 【AI面试准备】Azure DevOps沙箱实验全流程详解
  • 基于bert预训练模型的垃圾短信分类系统
  • React useMemo函数
  • 中小企业MES系统数据库设计
  • RabbitMQ的交换机
  • 【阿里云大模型高级工程师ACP习题集】2.9 大模型应用生产实践(上篇)
  • 超长8分钟Suno V4.5 – 支持一首歌多风格转换啦~~~
  • Nginx部署Vue+ElementPlus应用案例(基于腾讯云)
  • PDF转换工具xpdf-tools-4.05
  • 敏感词 v0.25.0 新特性之 wordCheck 策略支持用户自定义
  • 跳水世界杯总决赛:程子龙/朱子锋夺男子双人10米台冠军
  • 海港负国安主场两连败,五强争冠卫冕冠军开始掉队
  • 奥斯卡新规:评委必须看完影片再投票;网友:以前不是啊?
  • 金砖国家外长会晤主席声明(摘要)
  • 深入贯彻中央八项规定精神学习教育中央指导组派驻地方和单位名单公布
  • 总书记考察的上海“模速空间”,要打造什么样的“全球最大”?