การ import ทุกเมธอดจากโมดูลใน Python เป็นแนวทางที่ไม่ดีเนื่องจากเหตุผลต่อไปนี้
- ยากที่จะหาโมดูลหลัก (parent module) ของเมธอดที่เราใช้ในโปรแกรม
- เราไม่ได้รับอนุญาตให้สร้างฟังก์ชันของเราเองด้วยชื่อของเมธอดเหล่านั้น
มาดูตัวอย่าง ด้านล่างเราเขียนฟังก์ชันชื่อ add ใน sample.py
## sample.py file
def add(a, b):
return a + b
ตัวอย่าง
บันทึกไฟล์ข้างต้นในไดเรกทอรีเดียวกับไฟล์ Python ด้านล่าง
## สมมติเรามีโมดูลชื่อ sample
from sample import *
def add(*nums):
return sum(nums)
print(add(1, 2, 3, 4, 5))
ผลลัพธ์
หากรันโปรแกรมข้างต้น จะได้ผลลัพธ์ดังนี้
15
หากเรามีเมธอดเดียวกันชื่อ add ในแพ็กเกจ sample แล้ว จะยากสำหรับเราที่จะหาเมธอดที่แน่นอนซึ่งถูกตั้งชื่อในโปรแกรมขนาดใหญ่ เรายังอาจได้ข้อผิดพลาดกับพารามิเตอร์
ตัวอย่าง
โปรแกรมข้างต้นเรียกฟังก์ชันท้องถิ่นแทนเมธอดของแพ็กเกจ sample หากเราต้องการเรียกเมธอดของแพ็กเกจ sample เราต้อง import sample ดังนี้
## สมมติเรามีโมดูลชื่อ sample
import sample
def add(*nums):
return sum(nums)
print(sample.add(1, 2))
ผลลัพธ์
หากรันโปรแกรมข้างต้น จะได้ผลลัพธ์ดังนี้
3
Python อนุญาตให้เรา import โมดูลได้ตามที่เราต้องการ แต่ในโปรแกรมขนาดใหญ่ เราจะสับสนกับชื่อของเมธอดและฟังก์ชันที่ผู้ใช้กำหนด หากคุณสามารถจัดการชื่อของเมธอดและฟังก์ชันที่ผู้ใช้กำหนดได้ แล้ว import ตามสะดวกของคุณ