如何用Python引用一些其他的函數(shù)?
一、前言
Python中的模塊,有過(guò)C語(yǔ)言編程經(jīng)驗(yàn)的朋友都知道在C語(yǔ)言中如果要引用sqrt函數(shù),必須用語(yǔ)句#include引入math.h這個(gè)頭文件,否則是無(wú)法正常進(jìn)行調(diào)用的。
那么在Python中,如果要引用一些其他的函數(shù),該怎么處理呢?
在Python中有一個(gè)概念叫做模塊(module),這個(gè)和C語(yǔ)言中的頭文件以及Java中的包很類似,比如在Python中要調(diào)用sqrt函數(shù),必須用import關(guān)鍵字引入math這個(gè)模塊,下面就來(lái)了解一下Python中的模塊。
說(shuō)的通俗點(diǎn) :模塊就好比是工具包,要想使用這個(gè)工具包中的工具(就好比函數(shù)),就需要導(dǎo)入這個(gè)模塊。
二、模塊引入
1. import
在Python中用關(guān)鍵字import來(lái)引入某個(gè)模塊,比如要引用模塊math,就可以在文件最開(kāi)始的地方用import math來(lái)引入。
形如 :
import module1,mudule2...
當(dāng)解釋器遇到import語(yǔ)句,如果模塊在當(dāng)前的搜索路徑就會(huì)被導(dǎo)入。
在調(diào)用math模塊中的函數(shù)時(shí),必須這樣引用:
模塊名.函數(shù)名為什么必須加上模塊名調(diào)用呢?
因?yàn)榭赡艽嬖谶@樣一種情況:在多個(gè)模塊中含有相同名稱的函數(shù),此時(shí)如果只是通過(guò)函數(shù)名來(lái)調(diào)用,解釋器無(wú)法知道到底要調(diào)用哪個(gè)函數(shù)。所以如果像上述這樣引入模塊的時(shí)候,調(diào)用函數(shù)必須加上模塊名。
import math
#這樣會(huì)報(bào)錯(cuò) print sqrt(2)
#這樣才能正確輸出結(jié)果 print math.sqrt(2)
有時(shí)候我們只需要用到模塊中的某個(gè)函數(shù),只需要引入該函數(shù)即可,此時(shí)可以用下面方法實(shí)現(xiàn):
from 模塊名 import 函數(shù)名1,函數(shù)名2....
不僅可以引入函數(shù),還可以引入一些全局變量、類等。
注意:
這種方式引入的時(shí)候,調(diào)用函數(shù)時(shí)只能給出函數(shù)名,不能給出模塊名,但是當(dāng)兩個(gè)模塊中含有相同名稱函數(shù)的時(shí)候,后面一次引入會(huì)覆蓋前一次引入。也就是說(shuō)假如模塊A中有函數(shù)function( ),在模塊B中也有函數(shù)function( ),如果引入A中的function在先、B中的function在后,那么當(dāng)調(diào)用function函數(shù)的時(shí)候,是去執(zhí)行模塊B中的function函數(shù)。
2. 如果想一次性引入math中所有的東西,還可以通過(guò)from math import 來(lái)實(shí)現(xiàn)
2. from…import
Python的from語(yǔ)句讓你從模塊中導(dǎo)入一個(gè)指定的部分到當(dāng)前命名空間中。
語(yǔ)法如下:
from modname import name1[, name2[, ... nameN]]
例如,要導(dǎo)入模塊fib的fibonacci函數(shù),使用如下語(yǔ)句:
from fib import fibonacci注意:
不會(huì)把整個(gè)fib模塊導(dǎo)入到當(dāng)前的命名空間中,它只會(huì)將fib里的fibonacci單個(gè)引入。
3. from … import *
把一個(gè)模塊的所有內(nèi)容全都導(dǎo)入到當(dāng)前的命名空間也是可行的,只需使用如下聲明:
from modname import *注意:
這提供了一個(gè)簡(jiǎn)單的方法來(lái)導(dǎo)入一個(gè)模塊中的所有項(xiàng)目。然而這種聲明不該被過(guò)多地使用。
4 . 定位模塊
當(dāng)你導(dǎo)入一個(gè)模塊,Python解析器對(duì)模塊位置的搜索順序是:
當(dāng)前目錄
如果不在當(dāng)前目錄,Python則搜索在shell變量PYTHONPATH下的每個(gè)目錄。
如果都找不到,Python會(huì)察看默認(rèn)路徑。UNIX下,默認(rèn)路徑一般為/usr/local/lib/python/
模塊搜索路徑存儲(chǔ)在system模塊的sys.path變量中。變量里包含當(dāng)前目錄,PYTHONPATH和由安裝過(guò)程決定的默認(rèn)目錄。
發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
圖片新聞
-

落地?zé)o錫!京東首個(gè)物流機(jī)器人超級(jí)工廠來(lái)了
-

OpenAI發(fā)布的AI瀏覽器,市場(chǎng)為何反應(yīng)強(qiáng)烈?
-

馬云重返一線督戰(zhàn),阿里重啟創(chuàng)始人模式
-

機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹(shù)機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-

存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-

長(zhǎng)安汽車母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-

豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-

字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
最新活動(dòng)更多
-
即日-5.20立即下載>> 【限時(shí)免費(fèi)】物理場(chǎng)仿真助力生物醫(yī)學(xué)領(lǐng)域技術(shù)創(chuàng)新
-
精彩回顧立即查看>> 【直播】 智測(cè)未來(lái)·2026海克斯康春季產(chǎn)品創(chuàng)新日
-
精彩回顧立即查看>> 【線下論壇】新唐科技×芯唐南京 2026 年度研討會(huì)
-
精彩回顧立即查看>> OFweek 2026(第十五屆)中國(guó)機(jī)器人產(chǎn)業(yè)大會(huì)
-
精彩回顧立即查看>> 維科杯· OFweek 2025中國(guó)機(jī)器人行業(yè)年度評(píng)選
-
精彩回顧立即查看>> 【在線會(huì)議】液冷服務(wù)器信號(hào)完整性及冷卻液關(guān)鍵電參數(shù)測(cè)試
推薦專題
- 1 AI狂歡遇上油價(jià)破百,全球股市還能漲多久? | 產(chǎn)聯(lián)看全球
- 2 OpenAI深夜王炸!ChatGPT Images 2.0實(shí)測(cè):中文穩(wěn)、細(xì)節(jié)炸,設(shè)計(jì)師慌了
- 3 6000億美元估值錨定:字節(jié)跳動(dòng)的“去單一化”突圍與估值重構(gòu)
- 4 Tesla AI5芯片最新進(jìn)展總結(jié)
- 5 連夜測(cè)了一波DeepSeek-V4,我發(fā)現(xiàn)它可能只剩“審美”這個(gè)短板了
- 6 熱點(diǎn)丨AI“瑜亮之爭(zhēng)”:既生OpenClaw,何生Hermes?
- 7 AI界的殺豬盤:9秒刪庫(kù)跑路,全員被封號(hào),還繼續(xù)扣錢!
- 8 2026,人形機(jī)器人只贏了面子
- 9 DeepSeek降價(jià)90%:價(jià)格屠夫不是身份,是戰(zhàn)略
- 10 AI Infra產(chǎn)業(yè)鏈卡在哪里了?
- 高級(jí)軟件工程師 廣東省/深圳市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市


分享





