python 模块

1,模块的含义:

模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。

2,模块的导入方式:

  1, 使用 import 模块名

从一个run.py运行文件倒入一个.py文件的模块,发生3个过程:

右键运行run.py文件首先会创建一个run.py的名称空间

    首次导入模块(md1.py)(******)

        1.执行md.py文件

        2.运行md.py文件中的代码将产生的名字与值存放到md.py名称空间中

        3.在执行文件中产生一个指向名称空间的名字(md)

    

    

    多次导入不会再执行模块文件,会沿用第一次导入的成果(******)

money = 9999

def read1():
    print('from run read1')
# 访问模块中的名字指向的值
# print(md.money)  # 使用import导入模块 访问模块名称空间中的名字统一句势:模块名.名字




# md.read1()
# md.read2()
# print(md.change)

md1.change()
print(money)
print(md1.money)

需要注意的几点:

  

"""

1.只要你能拿到函数名 无论在哪都可以通过函数加括号来调用这个函数(会回到函数定义阶段 依次执行代码)

2.函数在定义阶段 名字查找就已经固定死了 不会因为调用位置的变化而改变

 

 

 

 

使用import导入模块 访问模块名称空间中的名字统一句势:模块名.名字

    1.指名道姓的访问模块中的名字 永远不会与执行文件中的名字冲突

    2.你如果想访问模块中名字 必须用模块名.名字的方式

"""

 

"""

只要当几个模块有相同部分或者属于用一个模块,可以使用上面的方法

当几个模块没有联系的情况下 应该分多次导入

import os

import time

import md

ps:通常导入模块的句式会写在文件的开头

"""

 

"""

当模块名字比较复杂的情况下 可以给该模块名取别名  

## import 模块名 as 别名 

"""

2, 使用 form 模块名 名字 方式导入

会先创建run1.py的名称空间

    首次导入md1.py模块

        1.运行md1.py

        2.将产生的名字存放到md1.py名称空间中

        3.直接拿到指向模块md1.py名称空间中某个值的名字

        

        

利用from...import...句式

    缺点:

        1.访问模块中的名字不需要加模块名前缀

        2.在访问模块中的名字可能会与当前执行文件中的名字冲突

 

# 补充

 

 1 from md1 import *  # 一次性将md1模块中的名字全部加载过来 不推荐使用 并且你根本不知道到底有哪些名字可以用
 2 
 3 print(money)
 4 
 5 print(read1)
 6 
 7 print(read2)
 8 
 9 print(change)
10 
11  
12 
13 """
14 
15 __all__可以指定当所在py文件被当做模块导入的时候
16 
17 可以限制导入者能够拿到的名字个数
18 
19 """
View Code

两个文件循环导入的解决方法:

1 解决循环导入问题的方式
2     1.方式1
3         将循环导入的句式写在文件最下方()
4     
5     2.方式2
6         函数内导入模块
View Code

模块的查找顺序

模块的查找顺序

    1.先从内存中找

    2.内置中找

    3.sys.path中找(环境变量):

        一定要分清楚谁是执行文件谁是被导入文件(******)

 

        是一个大列表,里面放了一对文件路径,第一个路径永远是执行文件所在的文件夹

 1 import time
 2 # import md
 3 # time.sleep(20)
 4 # md.f1()
 5 
 6 # import time
 7 # print(time.name)
 8 #
 9 # """
10 # 注意py文件名不应该与模块名(内置的,第三方)冲突
11 # """
12 # from dir1.dir import md
13 import sys
14 sys.path.append(r'D:\Python项目\day14\dir1')
15 # print(sys.path)
16 
17 from dir import md
View Code

模块导入的两种路径方法:

绝对导入必须依据执行文件所在的文件夹路径为准

    1.绝对导入无论在执行文件中还是被导入文件都适用

    

 

相对导入

    .代表的当前路径

    ..代表的上一级路径

    ...代表的是上上一级路径

 

    注意相对导入不能再执行文件中使用

    相对导入只能在被导入的模块中使用,使用相对导入 就不需要考虑

    执行文件到底是谁 只需要知道模块与模块之间路径关系

 

转载于:https://www.cnblogs.com/chendaodeng/p/11197056.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值