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.Hello1

test_package.Hello1.show()           #wzw:12345



#起别名 as ---

print("------------------------------as")

import test_package.Hello1 as hello

hello.show()

方法二:                                            

                    前提:导入的模块要和当前空间同级

                    import 模块名 as 别名                           此语句可以将整个模块导入到当前命名空间中

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

import Hello2

Hello2.show()

方法三:                                                

                    from 包名1.子包名2.... import 模块名 as 别名            允许你从模块中导入特定的函数、类或变量到当前命名空间。导入后,使用时无需加模块名前缀。

'''



#   form 包名.子包名 import 模块名      从包中去导入一个模块, 运用最广

from test_package import Hello1

Hello1.show()                           #此方式是将 Hello1 模块整个导入到当前命名空间




from test_package.Hello1 import show

show()                                 #此方式是从 Hello1 模块中仅导入 show 函数到当前命名空间



from Hello2 import show

show()            #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_name

res = __import__(module_name)

print(res.randint(1,50))            #在1-50中随机打印一个数字



#第二种方式:导入动态导入的库

import importlib

module_name = "math"            #值传递 将math内置数模块传递给module_name

res = importlib.import_module(module_name)

print(res.pi)               #3.141592653589793 打印出圆周率近似值


 

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

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

#测试导入模块内存问题

import math as m1

import math as m2

import math as m3           #导入三次math比较其地址



print(m1 is m2)     #True

print(m1 is m3)     #True       证明同一模块只会占用同一块地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值