一文提升你的編程能力,Python能力提升系列——模塊化編程

首先說一下:對于一個真實的Python程序,我們自己完成所有的工作是不太現(xiàn)實的,通常都是需要借助第三方類庫。而且,咱們編寫一個完整的程序的源代碼也不可能放在同一個源文件中,對吧,因此這些都需要以模塊化的方式來組織項目的源代碼。

好了,下面說一下Python相關(guān)的模塊化編程吧!

首先,導(dǎo)入模塊的簡單語法需要去進(jìn)行一下了解的。

下面的要牢記哦,import在Python中是被利用來導(dǎo)入模塊的,那就說一下import的用法吧,主要有兩種用法哦,分別如下:

  1. import 模塊名1[ as 別名1], 模塊名2[ as 別名2], …

注意上面“[ ]”中的是可選項哦,上面語句的意思就是整個模塊的導(dǎo)入。

  1. from 模塊名 import 成員名1[ as 別名1], 成員名2[ as 別名2], …

這個語句的意思就是 導(dǎo)入模塊中指定的成員。

推薦 :020 持續(xù)更新,精品小圈子每日都有新內(nèi)容,干貨濃度極高。
結(jié)實人脈、討論技術(shù) 你想要的這里都有!
搶先入群,跑贏同齡人!(入群無需任何費用)
點擊此處,與Python開發(fā)大牛一起交流學(xué)習(xí)。
群號:745895701
申請即送:
Python軟件安裝包,Python實戰(zhàn)教程
資料免費領(lǐng)取,包括 Python基礎(chǔ)學(xué)習(xí)、進(jìn)階學(xué)習(xí)、爬蟲、人工智能、自動化運維、自動化測試等

上面兩種import語句的 區(qū)別 主要如下:

1. 第一種import語句導(dǎo)入整個模塊內(nèi)的所有成員,這些成員包括變量、函數(shù)、類等;而第二種import語句則只導(dǎo)入模塊內(nèi)的指定成員,當(dāng)然除非你使用from 模塊名 import *,但這種方式通常是不推薦使用的。

2. 使用第一種import語句導(dǎo)入模塊中的成員時,必須添加模塊名或模塊別名前綴哦;當(dāng)使用第二種import語句導(dǎo)入模塊中的成員時,就不必使用任何的前綴啦,直接使用成員名或者成員別名就可以啦。

# 舉個“栗子”:

#導(dǎo)入整個sys模塊

import sys

#導(dǎo)入sys整個模塊,并指定其別名s

import sys as s

#導(dǎo)入sys、os兩個模塊

import sys, os

#導(dǎo)入sys、os兩個模塊,并為sys指定別名s,為os指定別名o

import sys as s, os as o

#導(dǎo)入sys模塊內(nèi)的argv成員

from sys import argv

#導(dǎo)入sys模塊內(nèi)的argv成員,并為其指定別名v

from sys import argv as v

#導(dǎo)入sys模塊內(nèi)的argv、winver成員

from sys import argv, winver

#導(dǎo)入sys模塊內(nèi)的argv,winver成員,并分別指定別名為v、w

from sys import argv as v, winver as w

#導(dǎo)入sys模塊中的所有成員

from sys import    

下面再來說一下,為什么使用from 模塊名 import 這種導(dǎo)入所有成員的形式不推薦大家使用吧

原因如下,還是舉個“栗子”吧!

因為這種方式是有潛在風(fēng)險的,比如說通過這種形式同時導(dǎo)入module1和module2內(nèi)的所有成員,如果這兩個模塊內(nèi)都有一個ex()函數(shù),那問題就來了,當(dāng)執(zhí)行如下代碼:ex()

這個同時存在于兩個模塊中的函數(shù)到底是在module1模塊中的呢?還是module2模塊中的呢?所以說嘛,這種導(dǎo)入方式是有潛在風(fēng)險的哦!

當(dāng)然還是有辦法來進(jìn)行規(guī)避的,你可以通過下面的方式:

import module1 as m1

import module2 as m2

這樣分別給兩個模塊起個別名就能區(qū)分開了,這時再調(diào)用ex()函數(shù)時,就可以按下面方式寫啦:

m1.ex()

m2.ex()

這樣就很清晰了哦!

還有沒有其他方法呢?當(dāng)然有啦,你還可以采用下面的方式,就是給模塊中的重名方法起個“外號”(別名)唄:

from module1 import ex as ex1

from module2 import ex as ex2

這樣就可以直接調(diào)用ex()方法啦!

ex1()

ex2()

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容