日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python基础学习之 import 用法详解

發布時間:2023/12/16 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python基础学习之 import 用法详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python基礎學習之 import 用法

文章目錄

  • Python基礎學習之 import 用法
    • 1. 直接引入模塊; import 模塊名;
    • 2. from 模塊/包 import 模塊/函數;
      • 例一:直接引入模塊
      • 例二:引入模塊中的所有函數
      • 例三:引入模塊中的指定函數
      • 例四:相對應用報錯的解決辦法
    • 3. 引用不同文件下的 包或模塊;
      • 方法一:通過模塊引用;
      • 方法二:通過包的引入;
    • 4. 引入函數名沖突
      • 4.1 函數名沖突的原因
      • 4.1 Python搜索模塊的順序:

1. 直接引入模塊; import 模塊名;

import 模塊名,這時python可以引入以下兩種模塊; 舉例如下:

  • 我們安裝好的模塊;(其實就是在環境變量路徑下的模塊;)
  • 運行文件所在目錄下的文件;(這里我們推薦用 from . import 模塊名的方式)
  • import os,sys # 模塊間用,隔開,可以引用多個; import pandas as pd # 這是給模塊一個別名,方便后續使用 import random # 所有安裝的第三方模塊,都可以直接引入 import F1 # 這里F1 就是與運行的py文件同一級的模塊或者包,在后面詳細介紹;

    備注: import 模塊名 as 別名;可以給引入的模塊一個別名,方便使用;

    2. from 模塊/包 import 模塊/函數;

    以 random 模塊舉例:
    我們知道,random 是一個包的名字,在random包中有很多函數,例如:random(), randint() 等;下面講一下兩種引入方式用法上的不同:

  • import 模塊名:這種方式引入模塊時,使用模塊內的函數,需要使用random.函數名的方式來調用函數;見例一;
  • from 模塊名 import * : 這種方式引入模塊時,可以直接使用函數,見例二;但這種方式
  • 上面的方式引入了包內所有的函數,有時我們只會用其中一個或幾個函數,這時候 我們可以使用以下方式: from random import random,randint,見例三;
  • 相對引用;有時我們需要引用當前py文件的父文件夾的模塊,這時可以使用相對引用;(但是這種引用,當其他文件引用本py時,有報錯風險; 只有在一個項目中的文件相互引用時,由于文件夾結構是固定的,所以推薦使用相對引用;),見例四:
  • 例一:直接引入模塊

    import random # 直接引用時 print(random.random()) # 想要調用random包中的函數,需要使用 random.函數名 的方式來調用,不能直接調用

    例二:引入模塊中的所有函數

    from random import * # 這種方式是將所有random 包中的內容全部導入進來了, print(random()) # 這時候的函數可以直接引用,不再需要 random.函數名 來使用了;

    例三:引入模塊中的指定函數

    from random import random,randint # 指定引入的函數,其他函數不引入print(random()) print(randint(1, 10))

    例四:相對應用報錯的解決辦法

    文件結構如下:其中每個A.py, B.py, C.py 文件中的內容為定義一個函數 fun() 打印文件名;
    整個目錄路徑為:D:\PY_useful\import_intro

    │ ├─ A │ └─ A.PY │ ├─ B │ └─ B.PY │ └─ B_2 │ └─ B_2.PY │ └─ C└─ C.PY

    .py文件中的代碼:

    # A.py def fun():print('It is A.py')# B.py def fun():print('It is B.py')# C.py def fun():print('It is C.py')

    在B_2.py 中引用A.py 中的fun();

    # 錯誤的做法: # 這時候,由于B_2.PY 在文件夾B_2中,所以按照相對引用來解析地址,我們會寫出以下代碼: from ...A import A # . 表示當前目錄,.. 表示父目錄, ...表示父目錄的父目錄;

    這是會報錯:ValueError: attempted relative import beyond top-level package;
    相對引用就會出現這樣的錯誤,解決辦法如下: 在環境變量地址中,加入頂級目錄的路徑,然后從高向低引用;

    import sys print(sys.path) # 添加前的環境變量列表 sys.path.append(r'D:\PY_useful\import_intro') # 添加頂級目錄 print(sys.path) # 添加后的環境變量列表# 方法一: from A import A # 可以直接導入A包中的A模塊 A.fun() # 輸出:It is A.py # 方法二: from A.A import fun # 可以直接導入A包.A模塊 中的fun 函數 fun() # 輸出:It is A.py

    在C.py中引用B_2.py 模塊;

    # B_2.PY 的內容如下: import sys sys.path.append(r'D:\PY_useful\import_intro')from A import A A.fun() # 輸出:It is A.pyfrom A.A import fun fun() # 輸出:It is A.pydef fun():print('It is B_2')

    方法一:引用模塊

    from B.B_2 import B_2 B_2.fun() # 或者: from B.B_2.B_2 import fun fun()

    輸出:

    It is A.py # 在引入模塊的時候,會執行一次模塊的內容,所以這里輸出了兩次 It is A.py It is A.py It is B_2

    3. 引用不同文件下的 包或模塊;

    前期準備:為說明引入的方法,我們先在:D:\PY_useful文件夾中創建文件夾 File_4,File_4中創建M4.py文件,M4.py 中的內容為:

    # M4.py 的內容; def Func4():print('In Func4')

    如果想在別的地方,引用這里的Func4() 函數,有兩種方法:

    方法一:通過模塊引用;

    首先需要將模塊所在的路徑(D:\PY_useful\File_4),加入環境變量路徑中,然后通過引用模塊,來使用Func4()函數;
    a. 引入模塊,然后通過模塊調用函數

    import syspath_add = r'D:\PY_useful\File_4' # 模塊所在的路徑 sys.path.append(path_add) # 把路徑添加到環境變量中import M4 M4.Func4()

    b. 直接引入模塊中的函數

    import syspath_add = r'D:\PY_useful\File_4' # 模塊所在的路徑 sys.path.append(path_add) # 把路徑添加到環境變量中from M4 import Func4 Func4()

    方法二:通過包的引入;

    首先需要將包(我們把File_4當作包)所在的路徑(D:\PY_useful),加入環境變量路徑中,然后通過引用包,來使用模塊,再通過模塊調用Func4()函數;

    備注:當程序不能把文件夾當作包時,在文件夾中建立空的py文件,文件名修改為: __init__.py , 有了這個空文件,文件夾會被python程序理解成包;

    a. 通過包,引入模塊來調用函數;

    import syspath_add = r'D:\PY_useful' # 包所在的路徑 sys.path.append(path_add) # 把路徑添加到環境變量中from File_4 import M4 M4.Func4()

    b. 通過包,引入模塊,再引入指定函數;

    import syspath_add = r'D:\PY_useful' # 模塊所在的路徑 sys.path.append(path_add) # 把路徑添加到環境變量中from File_4.M4 import Func4 Func4()

    4. 引入函數名沖突

    4.1 函數名沖突的原因

    想要解決函數名沖突,我們必須先明白Python的搜索模塊順序,python 按照順序搜索模塊,找到匹配項便會直接返回,不再向后查找,所以當有函數名相同的情況發生時,先被找到的函數會被執行;

    4.1 Python搜索模塊的順序:

  • 程序的主目錄
  • PTYHONPATH目錄(如果已經進行了設置)
  • 標準連接庫目錄
  • 自己添加的path路徑
  • 上面的順序,使用sys.path 就可以看到,不需要記,記住sys.path 就可以啦~;

    import sys for i in sys.path:print(i)

    輸出:

    D:\PY_useful\import_intro\F1\F2 # 這是 .py 文件所在的位置 D:\PY_useful\import_intro # 這是 項目目錄 C:\ProgramData\Anaconda3\python36.zip #下面這幾個是python自己的目錄 C:\ProgramData\Anaconda3\DLLs C:\ProgramData\Anaconda3\lib C:\ProgramData\Anaconda3 C:\ProgramData\Anaconda3\lib\site-packages # 下面是安裝模塊的目錄 C:\ProgramData\Anaconda3\lib\site-packages\win32 C:\ProgramData\Anaconda3\lib\site-packages\win32\lib C:\ProgramData\Anaconda3\lib\site-packages\Pythonwin

    如果有什么問題,歡迎留言喲~

    總結

    以上是生活随笔為你收集整理的Python基础学习之 import 用法详解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。