首页 > 编程语言 > 详细

python 模块

时间:2019-07-16 20:11:31      阅读:73      评论:0      收藏:0      [点我收藏+]

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(rD:\Python项目\day14\dir1)
15 # print(sys.path)
16 
17 from dir import md
View Code

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

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

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

    

 

相对导入

    .代表的当前路径

    ..代表的上一级路径

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

 

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

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

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

 

python 模块

原文:https://www.cnblogs.com/chendaodeng/p/11197056.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!