最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python調(diào)用其他.py文件函數(shù)的常見場景及實現(xiàn)方法詳解

 更新時間:2026年02月28日 09:27:49   作者:大游小游之老游  
在?Python?程序運行時,如何調(diào)用另一個.py文件中的函數(shù),這是?Python?開發(fā)中非常基礎(chǔ)且常用的操作,本文介紹了Python中調(diào)用其他.py文件函數(shù)的幾種常見場景及實現(xiàn)方法,大家可以根據(jù)需要進行選擇

在 Python 程序運行時,如何調(diào)用另一個.py文件中的函數(shù),這是 Python 開發(fā)中非?;A(chǔ)且常用的操作,核心是通過模塊導(dǎo)入實現(xiàn)(Python 中一個.py文件就是一個獨立的模塊)。下面分不同場景詳細講解,包含可直接運行的示例。

一、核心前提

Python 中,被調(diào)用的文件必須是合法的.py文件(后綴為.py),且文件名稱不能與 Python 內(nèi)置模塊(如os、sys、math等)重名,否則會引發(fā)命名沖突。

二、場景 1:兩個文件在同一目錄下(最常用)

文件結(jié)構(gòu)

├── func_module.py  # 被調(diào)用的文件(存放待調(diào)用的函數(shù))
└── main_program.py  # 主程序文件(運行時調(diào)用其他文件的函數(shù))

步驟 1:編寫被調(diào)用文件(func_module.py)

在該文件中定義需要被調(diào)用的函數(shù)(普通函數(shù)定義即可,無特殊格式要求):

# func_module.py
def add(a, b):
    """簡單的加法函數(shù),用于被其他文件調(diào)用"""
    return a + b

def multiply(a, b):
    """簡單的乘法函數(shù),用于被其他文件調(diào)用"""
    return a * b

# 可選:防止該文件被直接運行時執(zhí)行多余代碼(僅被導(dǎo)入時不執(zhí)行以下內(nèi)容)
if __name__ == "__main__":
    print("這是被調(diào)用的模塊文件,不是主程序!")

步驟 2:主程序文件調(diào)用函數(shù)(main_program.py)

有兩種常用導(dǎo)入方式,可根據(jù)需求選擇:

方式 1:導(dǎo)入整個模塊,通過「模塊名。函數(shù)名」調(diào)用

# main_program.py
# 導(dǎo)入同一目錄下的func_module模塊(即func_module.py文件)
import func_module

# 調(diào)用模塊中的函數(shù),格式:模塊名.函數(shù)名(參數(shù))
result1 = func_module.add(3, 5)
result2 = func_module.multiply(4, 6)

print(f"3+5={result1}")
print(f"4×6={result2}")

方式 2:直接導(dǎo)入模塊中的指定函數(shù)(推薦,減少冗余)

# main_program.py
# 從func_module模塊中導(dǎo)入add和multiply函數(shù),可直接調(diào)用
from func_module import add, multiply

# 直接使用函數(shù)名調(diào)用,無需加模塊前綴
result1 = add(3, 5)
result2 = multiply(4, 6)

print(f"3+5={result1}")
print(f"4×6={result2}")

方式 3:導(dǎo)入函數(shù)并指定別名(解決命名沖突)

# main_program.py
# 導(dǎo)入函數(shù)并設(shè)置別名,避免與當(dāng)前文件中的同名函數(shù)沖突
from func_module import add as my_add, multiply as my_mul

# 使用別名調(diào)用函數(shù)
result1 = my_add(3, 5)
result2 = my_mul(4, 6)

print(f"3+5={result1}")
print(f"4×6={result2}")

運行結(jié)果

運行main_program.py,輸出:

3+5=8
4×6=24

三、場景 2:被調(diào)用文件在子目錄下(按包組織文件)

當(dāng)項目文件較多時,會將功能模塊放在子目錄中,此時需要通過「包導(dǎo)入」實現(xiàn)。

文件結(jié)構(gòu)

├── main_program.py  # 主程序文件
└── utils/  # 子目錄(作為Python包)
    ├── __init__.py  # 包標識文件(Python3.3+可省略,但推薦創(chuàng)建,空文件即可)
    └── func_module.py  # 被調(diào)用的函數(shù)文件

關(guān)鍵說明

__init__.py的作用是標識當(dāng)前目錄為 Python 的「包」,使得目錄下的.py文件可以被作為模塊導(dǎo)入,該文件可以是空文件,也可以存放包的初始化配置。

步驟 1:編寫子目錄中的函數(shù)文件(utils/func_module.py)

內(nèi)容與場景 1 中的func_module.py一致,無需修改。

步驟 2:主程序文件調(diào)用(main_program.py)

需指定「包名(子目錄名). 模塊名」進行導(dǎo)入:

# main_program.py
# 方式1:導(dǎo)入子目錄下的模塊
import utils.func_module

result1 = utils.func_module.add(3, 5)
print(f"3+5={result1}")

# 方式2:直接導(dǎo)入子目錄模塊中的函數(shù)
from utils.func_module import multiply

result2 = multiply(4, 6)
print(f"4×6={result2}")

# 方式3:導(dǎo)入并指定別名
from utils import func_module as utils_func

result3 = utils_func.add(10, 20)
print(f"10+20={result3}")

四、場景 3:被調(diào)用文件在父目錄 / 其他非同級目錄

如果主程序文件在子目錄,需要調(diào)用上層目錄(或其他非同級目錄)的函數(shù),需要先將目標目錄添加到 Python 的搜索路徑中(Python 默認只搜索當(dāng)前目錄和內(nèi)置模塊目錄)。

文件結(jié)構(gòu)

├── func_module.py  # 被調(diào)用的函數(shù)文件(父目錄)
└── src/  # 子目錄
    └── main_program.py  # 主程序文件(需要調(diào)用上層的func_module.py)

實現(xiàn)步驟(src/main_program.py)

通過sys.path添加父目錄路徑,再進行導(dǎo)入:

# src/main_program.py
import sys
import os

# 1. 獲取當(dāng)前文件(main_program.py)的絕對路徑
current_file_path = os.path.abspath(__file__)
# 2. 獲取當(dāng)前文件所在目錄(src目錄)
current_dir = os.path.dirname(current_file_path)
# 3. 獲取父目錄(即func_module.py所在目錄)
parent_dir = os.path.dirname(current_dir)
# 4. 將父目錄添加到Python的模塊搜索路徑中
sys.path.append(parent_dir)

# 5. 此時即可像同級目錄一樣導(dǎo)入函數(shù)
from func_module import add, multiply

# 6. 調(diào)用函數(shù)
result1 = add(3, 5)
result2 = multiply(4, 6)

print(f"3+5={result1}")
print(f"4×6={result2}")

五、關(guān)鍵注意事項

  • 命名規(guī)范:模塊文件名稱建議使用小寫字母、下劃線,避免使用中文、空格和特殊字符,且不能與 Python 內(nèi)置模塊重名(如不能命名為os.py、sys.py)。
  • __name__ == "__main__"的作用:被調(diào)用文件中的該判斷代碼塊,只有在該文件被直接運行時才會執(zhí)行,被其他文件導(dǎo)入時不會執(zhí)行,可用于模塊自測,不影響主程序運行。
  • 導(dǎo)入后修改生效問題:如果在程序運行過程中修改了被調(diào)用文件的函數(shù),當(dāng)前運行的程序不會實時生效,需要重啟程序(或使用importlib.reload()強制重新加載模塊)。
  • 權(quán)限問題:確保主程序?qū)Ρ徽{(diào)用的.py文件有讀取權(quán)限,否則會引發(fā)導(dǎo)入失敗。
  • 循環(huán)導(dǎo)入問題:避免兩個文件互相導(dǎo)入對方的函數(shù)(如A.py導(dǎo)入B.py的函數(shù),B.py又導(dǎo)入A.py的函數(shù)),會引發(fā)ImportError,如需解決可通過延遲導(dǎo)入(在函數(shù)內(nèi)部導(dǎo)入)。

總結(jié)

  • Python 中調(diào)用另一文件的函數(shù),核心是模塊導(dǎo)入,一個.py文件就是一個模塊。
  • 同級目錄直接用import 模塊名from 模塊名 import 函數(shù)。
  • 子目錄需以「包」的形式導(dǎo)入,格式為包名.模塊名
  • 非同級目錄需先通過sys.path添加目標目錄到搜索路徑,再進行導(dǎo)入。
  • 遵循命名規(guī)范,避免循環(huán)導(dǎo)入和命名沖突,確保程序穩(wěn)定運行。

到此這篇關(guān)于Python調(diào)用其他.py文件函數(shù)的常見場景及實現(xiàn)方法詳解的文章就介紹到這了,更多相關(guān)Python調(diào)用.py文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用python解析json字段的3種方式實例

    使用python解析json字段的3種方式實例

    JSON(JavaScript?Object?Notation)是一種輕量級的數(shù)據(jù)交換格式,下面這篇文章主要給大家介紹了關(guān)于使用python解析json字段的3種方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • Anaconda超詳細保姆級安裝配置教程

    Anaconda超詳細保姆級安裝配置教程

    這篇文章主要介紹了Anaconda超詳細保姆級安裝配置教程,本篇教程對于新手很友好強烈推薦,看完這篇文章相信你對如何安裝配置Anaconda一定了然于胸,我們一起來看看吧
    2023-03-03
  • Python文件和目錄操作詳解

    Python文件和目錄操作詳解

    這篇文章主要介紹了Python文件和目錄操作詳解,本文講解了文件的打開和創(chuàng)建、文件的讀取、文件的寫入、內(nèi)容查找替換等內(nèi)容,需要的朋友可以參考下
    2015-02-02
  • python 實現(xiàn)對文件夾中的圖像連續(xù)重命名方法

    python 實現(xiàn)對文件夾中的圖像連續(xù)重命名方法

    今天小編就為大家分享一篇python 實現(xiàn)對文件夾中的圖像連續(xù)重命名方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python3如何跳過第一行讀取文件

    Python3如何跳過第一行讀取文件

    這篇文章主要介紹了Python3如何跳過第一行讀取文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • OpenCV凸包檢測和凸缺陷學(xué)習(xí)示例

    OpenCV凸包檢測和凸缺陷學(xué)習(xí)示例

    這篇文章主要為大家介紹了OpenCV凸包檢測和凸缺陷學(xué)習(xí)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 用十張圖詳解TensorFlow數(shù)據(jù)讀取機制(附代碼)

    用十張圖詳解TensorFlow數(shù)據(jù)讀取機制(附代碼)

    這篇文章主要介紹了用十張圖詳解TensorFlow數(shù)據(jù)讀取機制(附代碼),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • python圖形開發(fā)GUI庫wxpython使用方法詳解

    python圖形開發(fā)GUI庫wxpython使用方法詳解

    這篇文章主要介紹了python GUI庫wxpython使用方法詳解,需要的朋友可以參考下
    2020-02-02
  • 如何獲取numpy的第一個非0元素索引

    如何獲取numpy的第一個非0元素索引

    這篇文章主要介紹了如何獲取numpy的第一個非0元素索引,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • conda如何指定目錄安裝環(huán)境

    conda如何指定目錄安裝環(huán)境

    在使用conda創(chuàng)建指定目錄的Python環(huán)境時遇到錯誤,通過管理員身份運行、修改源配置、檢查環(huán)境目錄等多種方法,最終解決了問題,關(guān)鍵在于正確使用`conda?config?--append?envs_dirs`命令,指定環(huán)境所在目錄,而不是環(huán)境名稱
    2026-01-01

最新評論

英山县| 宽城| 湘乡市| 嫩江县| 新源县| 昌邑市| 行唐县| 吉林市| 长兴县| 岳阳县| 鹿邑县| 稻城县| 潼南县| 肃南| 玉树县| 和平区| 交口县| 西乌| 石河子市| 广平县| 屯昌县| 罗源县| 长丰县| 喀喇沁旗| 镇宁| 巨野县| 盘山县| 云林县| 古丈县| 奇台县| 名山县| 通榆县| 安乡县| 甘肃省| 满洲里市| 安顺市| 彭水| 突泉县| 嘉兴市| 长白| 淮南市|