Python系列 (9) 如何編寫 自定義模塊

前言

python 中有很多的內置模塊,比如 time 模塊,我們要使用它的時候,只需要 import time 導入time模塊就能夠使用了。那麼我們怎麼自己寫模塊呢?這是本文要講的~

一、模塊的好處

使用模塊之前,必須得說說 模塊的好處 , 不然我爲啥要用模塊呢?

好處:

  • 如果沒有模塊,我們的 .py 文件會隨着功能的增多,變得越來越大,代碼量非常多。這樣是不利於維護的,很繁雜~
  • 我們可以將各個功能的代碼寫成一個一個的模塊,這樣每個.py文件的代碼量了,維護起來也方便~
  • 一個模塊寫好後,可以被其它需要的地方引用,減少重複的代碼量
  • 可以避免函數名和變量的衝突,在自己編寫模塊的時候,不需要考慮名字會與其他模塊衝突,當然,也儘量不要與內置函數名衝突

二、如何寫模塊

  • 一個 .py 文件 就是一個模塊
  • my_abs.py 文件,my_abs 就是它的模塊名

1、在同一目錄下創建一個my_abs模塊

  • 在當前目錄下,新建一個 my_abs.py 文件,寫入如下代碼
# 模塊中的函數就是 這個模塊的方法
def myabs(num):
    if num < 0:
        return -num
    else:
        return num
  • 在和 my_abs.py 相同目錄下的某個文件中調用自定義模塊 my_abs
import my_abs				# 導入模塊名
print(my_abs.myabs(-1))		# myabs 就是我在 my_abs模塊 中定義的方法

# 運行結果
1

2、在不同目錄中編寫模塊

  • 這種情況通常是 我自定義的模塊名 和 別人寫的模塊名 重複了的情況下使用(我要寫my_abs.py文件,但是現在這個目錄中有其他人寫的my_abs.py文件)
  • 這個時候在當前目錄下建一個子目錄,比如建一個名爲 lxn 的子目錄,然後再這個目錄中編寫 my_abs.py 文件並且在這個子目錄中建立一個 init.py 文件可以爲空。如果不建立這個文件,那麼這個目錄會被python認爲是普通目錄,無法調用!
  • 這個時候,lxn 目錄可以稱爲 包(package),lxn 目錄被稱爲頂層包名
  • 用以上同樣的方式,可以有多級目錄

在當前目錄下建立一個lxn目錄,並創建 init.py 和 my_abs.py 文件

在這裏插入圖片描述

  • init.py 文件爲 空文件

my_abs.py 文件內容

def myabs(num):
    if num < 0:
        return -num
    else:
        return num

在 learn python 目錄下的任意一個 xxx.py 文件中,調用 my_abs 模塊

import lxn.my_abs
print(lxn.my_abs.myabs(-2))

運行結果:
2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章