Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การนำเข้าโมดูลใน Python

โมดูล (Module) ใน Python คือไฟล์ที่ประกอบด้วยโค้ด Python หลายบรรทัด ซึ่งสามารถนำไปใช้ซ้ำหรืออ้างอิงจากโปรแกรม Python อื่นๆ ได้ โปรแกรม Python ขนาดใหญ่ควรจัดระเบียบโดยแยกส่วนต่างๆ ไปอยู่ในโมดูลที่ต่างกัน ซึ่งจะช่วยให้การแก้ไขข้อผิดพลาด (Debugging) การปรับปรุง และการแพ็กเกจโปรแกรมมีประสิทธิภาพมากขึ้น

เพื่อใช้งานโมดูลในโปรแกรม Python ใดๆ เราต้องทำการนำเข้า (Import) โมดูลนั้นเข้ามาในโปรแกรมใหม่ก่อน หลังจากนำเข้าแล้ว ฟังก์ชัน เมธอด และตัวแปรต่างๆ จากโมดูลนั้นจะพร้อมใช้งานในโปรแกรมใหม่ทันที

การใช้คำสั่ง import

ลองสร้างไฟล์ชื่อ profit.py ซึ่งมีโปรแกรมสำหรับการคำนวณกำไรเปอร์เซ็นต์ ดังนี้:

ตัวอย่าง

def getprofit(cp, sp):
    result = ((sp - cp) / cp) * 100
    return result

ต่อไป เราต้องการใช้ฟังก์ชันข้างต้นในโปรแกรม Python อีกตัวหนึ่ง สามารถใช้คำสั่ง import เพื่ออ้างอิงโมดูลและฟังก์ชัน getprofit ได้

ตัวอย่าง

import profit
perc = profit.getprofit(350, 500)
print(perc)

ผลลัพธ์

การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้:

42.857142857142854

การใช้ from Module import

เราสามารถนำเข้าเฉพาะเมธอดหรือฟังก์ชันที่ต้องการจากโมดูลแทนที่จะนำเข้าโมดูลทั้งหมด โดยใช้คำสั่ง from Module import ตัวอย่างด้านล่างนำเข้าค่า pi จากโมดูล math เพื่อนำไปคำนวณ

ตัวอย่าง

from math import pi
x = 30 * pi
print(x)

ผลลัพธ์

94.24777960769379

การสำรวจโมดูล

หากต้องการทราบตำแหน่งที่ตั้งของโมดูลในตัว (Built-in modules) สามารถใช้โมดูล sys เพื่อดูได้ ในทำนองเดียวกัน หากต้องการทราบว่ามีฟังก์ชันอะไรบ้างในโมดูลใดโมดูลหนึ่ง สามารถใช้เมธอด dir() ได้

ตัวอย่าง

import sys
import math
print(sys.path)
print(dir(math))

ผลลัพธ์

['', 'C:\\Windows\\system32\\python38.zip', 'C:\\Python38\\DLLs', 'C:\\Python38\\lib', 'C:\\Python38', 'C:\\Python38\\lib\\site-packages']
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', ...]