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

ทำไมการ import * จึงเป็นแนวทางที่ไม่ดีใน Python


การ 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 ตามสะดวกของคุณ