中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python 模塊import(26)

發布時間:2020-08-03 02:38:12 來源:網絡 閱讀:381 作者:qq5d6f345f0205e 欄目:編程語言

一.模塊簡介

python開發中,每一個.py文件都可以看作是一個模塊,模塊內部的函數或者方法可以被其他模塊調用,至于函數或者方法是具體如何實現的,調用者不需要關心。

?

python 模塊import(26)

?

假如項目中既含有UI也有邏輯代碼還有功能實現,如果全寫在一個py文件,可能會有幾萬甚至十幾萬行代碼,顯得代碼很臃腫,為了方便代碼閱讀和維護,我們可以將項目拆分為多個模塊,不同的模塊實現不同的功能,這樣分工合作開發效率也高,而且就算出現bug也方便定位。

python 模塊import(26)

?

二.模塊分類

1.系統內置模塊

python中有一些內置模塊我們直接調用,比如:sys、time、json等,具體使用方法我們在調用模塊中詳細講解;

2.第三方開源模塊

安裝第三方開源模塊,可以直接cmd打開控制臺或者打開pycharm終端運行 pip install <模塊名> 即可,前提是anacoanda已經安裝正確,例如:學習爬蟲的時候需要安裝request

1

pip install request


3.自定義模塊

除了前面兩種模塊,我們也可以自己寫模塊來供自己調用,具體實現什么功能有自己決定,在后面的模塊調用中會有詳細講解,值得注意的是:模塊名字不能和內置模塊名字一樣,會造成沖突;

?

三.調用模塊

使用?import關鍵字?導入模塊,并放置在代碼最開始位置;同一個模塊不管執行了多少次?import <模塊名>,實際上只會被導入一次。

為了講解關于模塊的調用方法,假如我們有一個計算加減乘除的模塊文件calculator.py,代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

# !usr/bin/env python

# -*- coding:utf-8 _*-

"""

@Author:何以解憂

@Blog(個人博客地址): shuopython.com

@WeChat Official Account(微信公眾號):猿說python

@Github:www.github.com

@File:calculator.py

@Time:2019/10/11 21:25

?

@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!

"""

?

# 定義一個全局變量

name = "calculator"

?

# 加法

def add(x,y):

????return x+y

?

# 減法

def sub(x,y):

????return x-y

?

# 乘法

def multiplication(x,y):

????return x*y

?

# 除法

def division(x,y):

????return x/y

?

# 使用內置函數eval計算表達式的結果,如果表達式有誤,直接拋異常

def get_result(input_str):

????try:

????????return eval(input_str)

????except Exception as e:

????????print("表達式輸入異常!")

????????return None

如果已經忘記python 異常處理的小伙伴請參考:??python 異常處理詳細講解

?

1.import <模塊名>

新建一個py文件,用于調用模板文件 calculator.py 中的函數,代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

# 導入模塊

import calculator

?

# 調用calculator模塊中的add函數 : 模塊名.函數名??或者 模塊名.變量名

result = calculator.add(2,5)

print(result)

?

# 調用calculator模塊中的sub函數 : 模塊名.函數名??或者 模塊名.變量名

result = calculator.sub(2,5)

print(result)

?

# 調用calculator模塊中的multiplication函數 : 模塊名.函數名??或者 模塊名.變量名

result = calculator.multiplication(2,5)

print(result)

?

# 調用calculator模塊中的add函數 : 模塊名.函數名??或者 模塊名.變量名

result = calculator.division(2,5)

print(result)

?

# 調用calculator模塊中的get_result函數 : 模塊名.函數名??或者 模塊名.變量名

result = calculator.get_result("3+2*8-40")

print(result)

?

# 調用calculator模塊中的name變量 : 模塊名.函數名??或者 模塊名.變量名

print(calculator.name)

輸出結果:

1

2

3

4

5

6

7

-3

10

0.4

-21

calculator

注意:調用模中的函數時需要指明函數或者變量來自哪個模板:<模塊名>.函數名? ? <模塊名>.變量名

?

2.from <模塊名> import <函數或者變量>,<函數或者變量>,<函數或者變量>…..

做一個簡單理解,從哪個模導入哪些函數或者變量,外部導入模塊后調用時只能調用導入的函數或者變量,模塊中沒有導入的變量或者函數不能調用,示例代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

'''

從模塊calculator中導入add,sub兩個函數,

意味著調用calculator模塊時,只能調用add,sub兩個函數,

calculator 模塊中的其他變量或者函數無法調用

'''

?

from calculator import add,sub

?

# 在代碼頂部已經聲明add函數從calculator導入,可以直接使用,不需要帶上模板名

result = add(2,5)

print(result)

?

# 在代碼頂部已經聲明sub函數從calculator導入,可以直接使用,不需要帶上模板名

result = sub(2,5)

print(result)

?

# 錯誤寫法:該模塊并沒有導入name變量

# result = multiplication(2,5)

?

# 錯誤寫法:該模塊并沒有導入name變量

# result = division(2,5)

?

# 錯誤寫法:該模塊并沒有導入name變量

# result = calculator.get_result("3+2*8-40")

?

# 錯誤寫法:該模塊并沒有導入name變量

# print(calculator.name)

?

?

3.from <模塊名> import *

這種寫法表示直接導入模塊中的所有內容,意味著模塊中的函數或者變量都可以使用,該寫法實際上和第二種導入方法類似,示例代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

# 導入calculator 模塊中所有函數和變量

from calculator import *

?

# 在代碼頂部已經聲明導入calculator模塊所有內容,可以直接使用,不需要帶上模板名

result = add(2,5)

print(result)

?

# 在代碼頂部已經聲明導入calculator模塊所有內容,可以直接使用,不需要帶上模板名

result = sub(2,5)

print(result)

?

# 在代碼頂部已經聲明導入calculator模塊所有內容,可以直接使用,不需要帶上模板名

result = multiplication(2,5)

print(result)

?

# 在代碼頂部已經聲明導入calculator模塊所有內容,可以直接使用,不需要帶上模板名

result = division(2,5)

print(result)

?

# 在代碼頂部已經聲明導入calculator模塊所有內容,可以直接使用,不需要帶上模板名

result = get_result("3+2*8-40")

print(result)

?

# 在代碼頂部已經聲明導入calculator模塊所有內容,可以直接使用,不需要帶上模板名

print(name)

輸出:

1

2

3

4

5

6

7

-3

10

0.4

-21

calculator

使用該方法導入模塊時有一個缺陷:如果同時導入多個模塊文件,如果模塊中的函數或者變量重名,編譯器也不知道具體是用哪一個模塊重名的函數或者變量,會造成意想不到的bug,往往這種bug最難查找!

?

四.簡單的計算器

利用上面的calculator模塊,再加上前面的python基礎知識,其實我們已經可以寫一個簡單的計算器了,唯獨沒有界面而已,至于界面后面會有pyqt5的教程,暫時不做過多講解。計算器代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

# 導入內置模塊time,計算耗時,默認單位秒

import time

# 導入calculator 模塊

import calculator

?

?

while True:

????# 獲取表達式

????input_str = input("請輸入表達式:")

????if input_str == 'q': # 輸入 q 退出程序

????????break

????time_start = time.clock()

????print(calculator.get_result(input_str))

????time_end = time.clock()

????# 將 秒 轉為 毫秒

????print("計算耗時:{}毫秒".format((time_end-time_start)*1000))

?

print("退出計算,程序結束!")

測試結果:

python 模塊import(26)

?

?

五.重點總結

1.注意模塊的幾種導入方式,python開發中推薦使用寫法一的方式導入:import <模塊名>;

2.注意內置函數和內置模塊的區別:內置函數是任何模塊都可以直接調用,內置模塊需要import模塊之后才能調用模塊里面的函數;

3.不同的模塊中可以存在相同的變量名或者函數名,但是不能與內置函數名或者內置模塊名字重復,避免造成沖突;

猜你喜歡:

1.python內置函數input/eval函數

2.字典推導式

3.列表推導式

4.python異常處理

?

轉載請注明:猿說Python???python模塊


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

呼玛县| 灌阳县| 游戏| 桂林市| 安多县| 连山| 吉林市| 景德镇市| 夏津县| 吉木乃县| 宾阳县| 土默特左旗| 社会| 萍乡市| 澎湖县| 乌兰浩特市| 景谷| 临汾市| 茶陵县| 阜南县| 兖州市| 抚州市| 西乡县| 绥中县| 德州市| 灵璧县| 太原市| 郑州市| 高密市| 澄城县| 浠水县| 陕西省| 绥宁县| 长宁区| 海伦市| 灵宝市| 北碚区| 简阳市| 岳西县| 孟村| 阿拉善盟|