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...不須要加前綴
相關文章
相關標籤/搜索