Python 學習筆記11 函數模塊

  函數的優勢之一,使用它們可將代碼塊與主程序分離。經過給函數指定描述性的名稱。可讓主程序很是好理解。可是若是將過多的函數和主程序放置在一塊兒,會讓文件顯得很是凌亂。太多的代碼混雜在一塊兒,不方便管理。咱們能夠將相關的、相似的、一個對象的先關函數編寫在一個py文件裏。主程序根據須要經過導入這些文件,由選擇的調用一些函數。這樣既方便管理,也使主程序更加簡潔明瞭。python

  經過將程序存儲在獨立的文件中,咱們能夠隱藏程序代碼的相關細節,將注意力放在主程序的邏輯實現上。並且咱們也能夠在許多程序中重用這些函數。獨立的文件,也方便咱們以其餘人員分享這些文件,而不是主程序。咱們還可使用其餘程序員編寫的模塊簡歷函數庫。程序員

  Python提供了許多種方式來導入模塊。函數

  首先咱們要先建立模塊。模塊的擴展名是.py,其實就是一個python文件。咱們在文件中創建各類函數,爲其餘程序調用作準備。好比咱們創建一個叫greet的模塊,一個打招呼的模塊:spa

#-*- coding:utf-8 -*-
'''
Define a module to greet others with parmater:
'''

def say_hello(name):
    str_message = "hello, " + str(name) + "!"
    return str_message


def say_bye(name):
    str_message = "Bye, " + str(name) + "!"
    return str_message

 

  咱們把它存爲greet.py文件,以此同時咱們在同一文件目錄下新加一個主程序文件,就能夠導入和使用模塊了。方式有多種,咱們來一一介紹下:code

1. 導入整個模塊對象

#-*- coding:utf-8 -*-
import greet

s_message = greet.say_hello('Ralf')
print(s_message)

'''
輸出:hello, Ralf!
'''

 

  咱們使用import + 模塊名 直接導入整個模塊。python會打開整個模塊,並將整個函數代碼複製到主程序中。咱們並不會看到這些代碼。可是實際上這些代碼會在後臺編譯時運行。而咱們在調用函數時,須要使用 【模塊名稱】.【函數名稱】的形式來使用函數體。blog

  咱們也可使用*來一次性導入模塊中的全部函數:utf-8

#-*- coding:utf-8 -*-
from greet import *

s_message = say_hello('Ralf')
print(s_message)

s_message = say_bye('Ralf')
print(s_message)

'''
輸出:
hello, Ralf!
Bye, Ralf!
'''

 

  使用這種方式,不須要指定模塊名稱,直接調用相關函數便可。it

  可是一次性導入整個模塊,會讓編譯後的程序顯得臃腫不堪,咱們也能夠根據須要,只導入模塊中的部分函數給咱們使用:編譯

2. 導入部分函數:

#-*- coding:utf-8 -*-
from greet import say_hello

s_message = say_hello('Ralf')
print(s_message)

'''
輸出:hello, Ralf!
'''

 

  咱們能夠看到咱們只導入了模塊 greet中的say_hello()的函數,而且函數能夠正確的運行。須要注意的是由於咱們是顯示的導入了函數,則不須要在函數名稱前面再加模塊的名稱,直接調用函數便可。

  咱們也能夠導入多個函數:

#-*- coding:utf-8 -*-
from greet import say_hello, say_bye

s_message = say_hello('Ralf')
print(s_message)

s_message = say_bye('Ralf')
print(s_message)

'''
輸出:
hello, Ralf!
Bye, Ralf!
'''

 

  咱們在導入模塊和調用函數的時候,有時候會遇到模塊名稱或者函數名稱和代碼中的變量,函數名稱相沖突,或者函數、模塊名稱過於複雜。咱們能夠將模塊、函數名稱用as指定別名,來區別。

1. 模塊別名:

#-*- coding:utf-8 -*-
import greet as gt

s_message = gt.say_hello('Ralf')
print(s_message)

s_message = gt.say_bye('Ralf')
print(s_message)

'''
輸出:
hello, Ralf!
Bye, Ralf!
'''

 

2. 函數別名

#-*- coding:utf-8 -*-
from greet import say_bye as bye, say_hello as hello

s_message = hello('Ralf')
print(s_message)

s_message = bye('Ralf')
print(s_message)

'''
輸出:
hello, Ralf!
Bye, Ralf!
'''
相關文章
相關標籤/搜索