การทำให้การนำเข้าใน Python ของคุณง่ายขึ้น: วิธีการนำเข้าตามคลาส แทนไฟล์

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

ปัญหา

พิจารณาโครงสร้างไฟล์ต่อไปนี้สำหรับแอปพลิเคชัน Python ของคุณ:

app/
  app.py
  controllers/
    __init__.py
    project.py
    plugin.py

ในกรณีนี้ หากคุณกำหนดคลาส Project ในไฟล์ project.py การนำเข้ามันใน app.py จะมีลักษณะดังนี้:

from app.controllers.project import Project

แต่ถ้าคุณต้องการให้คำสั่งนำเข้าของคุณสั้นและสะอาดขึ้นล่ะ? คุณอาจต้องการนำเข้ามันแบบนี้:

from app.controllers import Project

วิธีนี้ไม่เพียงแต่ทำให้คำสั่งนำเข้าของคุณเรียบง่าย แต่ยังทำให้ฐานข้อมูลโค้ดของคุณมีระเบียบมากขึ้น คำถามเกิดขึ้น: คุณจะตั้งค่านี้ได้อย่างไร?

วิธีแก้ปัญหา

เพื่อทำให้กระบวนการนำเข้าของคุณเป็นไปอย่างราบรื่นและอนุญาตให้ทำการนำเข้าคลาสโดยตรงจากแพ็กเกจ คุณจำเป็นต้องปรับเปลี่ยนไฟล์ __init__.py ที่ตั้งอยู่ในไดเรกทอรี controllers เล็กน้อย

คู่มือทีละขั้นตอน

  1. เปิดไฟล์ __init__.py: ไฟล์นี้มักใช้สำหรับการเริ่มต้นแพ็กเกจ Python ของคุณ และช่วยให้คุณควบคุมว่าคุณจะนำเข้าสิ่งใดเมื่อคุณนำเข้าแพ็กเกจเอง

  2. เพิ่มคำสั่งนำเข้า: เพื่อให้คลาส Project สามารถนำเข้าได้โดยตรงจาก controllers ให้เพิ่มบรรทัดต่อไปนี้ในไฟล์ __init__.py ของคุณ:

    from project import Project
    

    นี่บอกกับ Python ว่าให้ทำการนำเข้าคลาส Project จาก project.py โดยอัตโนมัติเมื่อคุณนำเข้าแพ็กเกจ controllers

  3. ปรับให้เหมาะสมสำหรับการนำเข้าสัมบูรณ์: ด้วยการเปิดตัวของ Python 2.7 เป็นต้นไป การนำเข้าสัมบูรณ์จะกลายเป็นโหมดเริ่มต้นสำหรับการนำเข้า เพื่อหลีกเลี่ยงความขัดแย้งที่อาจเกิดขึ้นกับโมดูลระดับสูงที่อาจไม่มีเจตนาที่จะแชร์ชื่อ (เช่น project) เป็นการดีที่จะเพิ่มจุดเพื่อแสดงถึงการนำเข้าสัมพัทธ์ ดังนั้นคุณจะปรับคำสั่งนำเข้าในไฟล์ __init__.py ของคุณเป็น:

    from .project import Project
    

    นี่แสดงให้เห็นว่าคลาส Project ถูกนำเข้าจากแพ็กเกจปัจจุบัน (controllers)

ข้อคิดสำคัญ

  • โดยการปรับเปลี่ยนไฟล์ __init__.py ของคุณ คุณจะทำให้การนำเข้าของคุณมีประสิทธิภาพมากขึ้น
  • การใช้จุด (.) หน้าชื่อโมดูลช่วยให้มั่นใจว่าคุณกำลังอ้างถึงโมดูลที่ถูกต้อง ซึ่งเป็นสิ่งที่มีประโยชน์โดยเฉพาะในแอปพลิเคชันขนาดใหญ่ที่มีความขัดแย้งชื่อที่เป็นไปได้
  • แนวปฏิบัตินี้ไม่เพียงแต่เพิ่มความอ่านง่ายของโค้ดของคุณ แต่ยังช่วยคุณรักษาโครงสร้างที่ชัดเจนเมื่อโครงการของคุณขยายตัว

สรุป

โดยการทำตามขั้นตอนง่ายๆ ที่กล่าวถึงข้างต้น คุณสามารถพัฒนาวิธีการเขียนโค้ด Python ของคุณโดยทำให้การนำเข้าของคุณตรงไปตรงมามากขึ้น เทคนิคนี้ไม่เพียงแต่ประหยัดเวลา แต่ยังส่งผลต่อโค้ดที่สะอาดและบำรุงรักษาได้ง่าย โปรดจำไว้ว่าแอปพลิเคชันที่มีโครงสร้างดีเริ่มต้นจากการจัดการการนำเข้าของคุณอย่างมีประสิทธิภาพ!

ลองทดลองใช้แนวทางนี้ในโครงการของคุณเองและดูความแตกต่างที่เกิดขึ้น!