python导入模块的关键字_模块导入及使用,关键字,模块搜索路径,python文件的两种用途...

06.05自我总结

一.模块导入及使用

1.模块导入的两种方式

我们拿time模块并使用其中的time功能进行举例

a)第一种

import time

print(time.time)

import首次导入模块发生了3件事:

打开模块文件

执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间

在程序中会有一个模块名称指向模块名称空间(如果他是import time as f)则是f指向模块空间

在当前执行文件中拿到一个模块名

b)第二种

from time import time

print(time)

from...import...首次导入模块发生了3件事:

以模块为准创造一个模块的名称空间

执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间

在当前执行文件的名称空间中拿到一个名字,该名字直接指向模块中的某一个名字,意味着可以不用加任何前缀而直接使用

优点:不用加前缀,代码更加精简

缺点:容易与当前执行文件中名称空间中的名字冲突

c)相同点和不同点

相同点:

两者都会执行模块对应的文件,两者都会产生模块的名称空间

两者调用功能时,需要跑到定义时寻找作用域关系,与调用位置无关

不同点

import需要加前缀;from...import...不需要加前缀

2.关键字

_all_

如果一个模块的文件内写有_all_

import 模块名字,默认导入所有模块

而当模块中出现_all_时候,他只会导入_all_后面列表内的名称

二.模块循环导入

1.情况

创建两个模块

# m1.py

print('from m1.py')

from m2 import x

y = 'm1'

# m2.py

print('from m2.py')

from m1 import y

x = 'm2'

应用程序导入模块

# run.py

import m1

2.解决办法

第一种

把m1中吧form m2 import x 将能找到的y放置form m2 import x,上面,让他在没有导入模块的时候就发现y从而不会寻找

# m1.py

print('from m1.py')

y = 'm1'

from m2 import x

第二种

把from m2 import x 用函数把他变成局部,文件加载顺序先全局在局部

def f1():

from m2 import x

y = 'm1'

f()

三.模块搜索路径

去内存中找去→内置模块中找→去环境变量中找

打印环境变量

import sys

print(sys.path)

四.python文件的两种用途

1.模块文件

2.运行文件

搜索路径以运行文件为基准

五.关键字_name_

在执行文件中_name_会被读取成'__main__'

在导入模块的时候__name__会变成模块名字

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值