056 import和from····import

import和from····import

1、import

1.import time

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

import time

time.time()# 只能这样用

time()# 不能够这样用

2.用import导入模块,会引起的3件事情

  • 好比咱们就import time导入time这个模块的时候
  1. 会在内存中生成一个叫作time的名称空间
  2. 在运行time.py文件,把time.py文件内的名称空间放入time的名称空间内
  3. 把time的名称空间指向 import和from····import.py(当前导入time模块的文件) 的名称空间中

2、from····import

1.from time import gmtime

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

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

gmtime()# 不用像import导入模块那样、须要用模块名.方法名(time.gmtime)

2.用from····import导入模块方法,会引起的3件事情

  • 好比咱们就import time导入time这个模块的时候
  1. 在内存中生成一个叫作time的名称空间
  2. 运行time.py文件,而后把time.py文件内的全部的名字都放入time的名称空间
  3. 而后gmtime直接指向,当前导入time模块的中的某一个名字

3.from·····import导入模块的功能

  1. `from time import gmtime内存

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

  2. from time import gmtime,timeclass

    从time模块里面导入gmtime 和time这两个方法,固然咱们也能够多写几个,导入多个test

  3. from time import *
    8import

    从time模块里面,导入time模块里面全部的方法。这个就等同于import time,可是不推荐使用,由于很容易形成变量名冲突变量

  4. __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__限制之外的功能的话,就会报错

3、import和from...import...的异同

相同点:im

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

不一样点

  1. import须要加前缀;from...import...不须要加前缀
相关文章
相关标签/搜索