Python教程:import和from····import区别和用法

一、import

1.import time

使用import 导入模块的时候,使用方法只能用(模块.方法名()),不能直接用模块里面的方法名

import time

time.time()# 只能这样用

time()# 不可以这样用
2.用import导入模块,会引发的3件事情

比如我们就import time导入time这个模块的时候

  • 会在内存中生成一个叫做time的名称空间
  • 在运行time.py文件,把time.py文件内的名称空间放入time的名称空间内
  • 把time的名称空间指向 import和from····import.py(当前导入time模块的文件) 的名称空间中

二、from····import

1.from time import gmtime

使用from····import时直接从某一个模块中导入模块中的一个方法

  • 优点:不用加前缀,代码更加精简
  • 缺点:容易与当前执行文件中名称空间中的名字冲突
from  time import gmtime

gmtime()# 不用像import导入模块那样、需要用模块名.方法名(time.gmtime)
2.用from····import导入模块方法,会引发的3件事情

比如我们就import time导入time这个模块的时候

  • 在内存中生成一个叫做time的名称空间
  • 运行time.py文件,然后把time.py文件内的所有的名字都放入time的名称空间
  • 然后gmtime直接指向,当前导入time模块的中的某一个名字
3.from·····import导入模块的功能
  • ``from time import gmtime`

    从time模块里导入 gmtime这一个方法

  • from time import gmtime,time

    从time模块里面导入gmtime 和time这两个方法,当然我们也可以多写几个,导入多个

  • from time import *
    8

    从time模块里面,导入time模块里面所有的方法。这个就等同于import time,但是不推荐使用,因为很容易造成变量名冲突

  • _all_:只允许需要导入模块的某几个方法,也就是限制一些方法不可以被使用

# test.py文件

__all__ = ['name','age']# 只允许导入'money'和'read1'
def name():
    pass

def age():
    paass
    
def money():
    pass

# run.py文件
from test import *# 导入test模块中的所有功能
# 但是它受到了__all__的限制,如果导入__all__限制以外的功能的话,就会报错

三、import和from…import…的异同

相同点:

两者都会执行模块对应的文件,两者都会产生模块的名称空间
两者调用功能时,需要跑到定义时寻找作用域关系,与调用位置无关

不同点

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值