มาเรียนรู้เกี่ยวกับวิธีการต่างๆ ที่เราสามารถนำเข้าโมดูลเหล่านี้ได้จริง
จนถึงตอนนี้ เราเพิ่งเรียนรู้เกี่ยวกับการนำเข้า แต่บางครั้งสิ่งต่าง ๆ ก็ค่อนข้างจะวุ่นวาย
ตัวอย่างเช่น เราสามารถมีแพ็คเกจอื่นภายในแพ็คเกจอื่นได้
ตัวอย่างเช่น ถ้าฉันสร้างโฟลเดอร์ใหม่ที่นี่และพูดว่าแพ็คเกจ New Python เราจะเรียกสิ่งนี้ว่าการคลิกซื้อของเพิ่มเติม
ตกลง.
คุณเห็นว่า?
ฉันได้เริ่มต้นแพ็คเกจอื่นภายในแพ็คเกจที่มีไฟล์เป็นของตัวเอง
เรามาย้ายสิ่งนี้กันเพื่อทำ refactor move แล้วเราจะย้ายมันเข้าไปข้างในโฟลเดอร์ shopping เพิ่มเติม
ดังนั้นฉันจะพูดมากขึ้น
ช้อปปิ้ง.
ถ้าฉันคลิก och คุณจะเห็นว่าฉันได้ย้ายโมดูลนี้มาที่นี่
ดังนั้นฉันจึงมีแพ็คเกจอยู่ภายในแพ็คเกจ
และวิธีที่เราจะเข้าถึงสิ่งนี้คือพูดง่ายๆ ว่าแหล่งช้อปปิ้งมีมากขึ้น
ตะกร้าช้อปปิ้งดอท
และลองทำแบบเดียวกันที่นี่
และตอนนี้เมื่อฉันคลิกเรียกใช้
คุณจะเห็นว่ามันยังคงใช้งานได้
แต่นี่มันชักจะบ้าไปหน่อยแล้ว
คุณสามารถจินตนาการได้ในขณะที่เรามีแพ็คเกจมากขึ้นเรื่อยๆ ที่เราต้องทำดอทนี้ ดอทนี้
และนี่ค่อยเป็นค่อยไป
ยาวเกินไปและน่าเกลียด
แล้วเราจะดีขึ้นได้อย่างไร
วิธีหนึ่งในการทำสิ่งนี้ในแบบที่สะอาดกว่าคือทำสิ่งนี้แทนที่จะพูดว่านำเข้า
เราว่าจากนี้
ส่วนหนึ่งฉันต้องการนำเข้าฟังก์ชั่น
ฉันกำลังพูดว่า เฮ้ จากชื่อแพ็คเกจ ชื่อแพ็คเกจ โมดูล นำเข้าฟังก์ชั่นใดก็ได้ที่ฉันต้องการ
ในกรณีของเรา เราต้องการนำเข้าฟังก์ชันซื้อ
คุณจะเห็นว่าฉันสามารถทำได้และในรหัสของฉัน
ฉันสามารถเรียกใช้ได้ราวกับว่ามันเป็นส่วนหนึ่งของไฟล์หลักนี้
ถ้าฉันเรียกใช้สิ่งนี้
คุณจะเห็นว่ามันยังคงใช้งานได้
สุดยอด.
นั่นจึงสะอาดกว่าแน่นอน
และเราสามารถทำได้ด้วยยูทิลิตี้เช่นกัน
ฉันสามารถพูดได้จากการนำเข้ายูทิลิตี้และนำเข้าทั้งสองไฟล์หรือสองฟังก์ชั่น
นั่นคือการคูณ
และถ้าเราต้องการฟังก์ชันอื่น เราสามารถเติมลูกน้ำแล้วบอกว่าหารได้
ตอนนี้เราสามารถพิมพ์ Apple ได้แล้ว
หรือตามแอปเปิลก็ได้เช่นกันแบ่ง
สมมุติว่าห้าต่อสอง
และเรายังสามารถคูณได้
โอ้ และต้องแน่ใจว่าเป็นเครื่องหมายจุลภาคตรงนี้ เพราะมันเป็นฟังก์ชันแบบนี้ ถ้าฉันเรียกใช้ คุณจะเห็นสิ่งนั้น
เราจะไปที่นั่น.
สิ่งนี้ใช้ได้เช่นกัน
นี่เป็นวิธีที่ดีในการล้างโค้ดของคุณ
คุณยังสามารถทำสิ่งนี้โดยที่คุณพูดจากชื่อแพ็คเกจ ชื่อแพ็คเกจ
แล้วนำเข้าทั้งโมดูล
สมมติว่าฉันต้องการนำเข้าโมดูลตะกร้าสินค้า
บอกเลยว่านำเข้า
ดังนั้นแพ็คเกจดอทแพ็คเกจ
หรือคุณสามารถทำแพคเกจเดียวและนำเข้าตะกร้าสินค้าจริงของโมดูล
ตอนนี้ฉันจะเข้าถึงมันเหมือนตะกร้าสินค้านี้จุดโดย
และสิ่งนี้ก็จะได้ผลเช่นกัน
เหตุผลที่คุณอาจต้องการทำเช่นนี้แทนที่จะเป็นสิ่งที่เรามีมาก่อนก็คือ บางครั้งคุณอาจได้รับชื่อที่ขัดแย้งกัน
ให้ผมแสดง.
สมมติว่าฉันมีงานพิมพ์แล้วในที่นี้เราใช้ฟังก์ชัน max ซึ่งทำให้เรามีฟังก์ชันในตัว
เราให้ตัววนซ้ำและมันหาค่าสูงสุดสำหรับเรา เพื่อที่ว่าถ้าฉันเรียกใช้ คุณจะเห็นว่าค่าสูงสุดในรายการนี้คือสาม
ลองนึกภาพในฟังก์ชันยูทิลิตี้ของเรา เรามี a แทนการหาร หรือเราบวกค่า max ที่บอกว่า
กลับมาแล้วโว้ย
ถ้าฉันกลับไปที่ค่า pi หลักของฉัน
และ.
รับ Max เป็นฟังก์ชันของฉันแล้วคลิก Run
เข้าใจแล้ว ฉันได้รับอากาศ
ฉันได้รับ Max รับอาร์กิวเมนต์ตำแหน่งเป็นศูนย์ แต่ได้รับ แต่อย่างใดอย่างหนึ่งได้รับเพราะตอนนี้ Max ไม่ได้หมายถึงสิ่งที่เราคิดว่าเราหมายถึง
อย่างน้อยในไฟล์นี้เราได้นำเข้า Max และดี
Max เป็นฟังก์ชันที่แตกต่างไปจากเดิมอย่างสิ้นเชิง ดังนั้นเราจึงสามารถแทนที่ฟังก์ชันที่มีอยู่ได้จริง
ดังนั้นโดยการใช้บางอย่างเช่นตะกร้าสินค้านี้ เราต้องแน่ใจว่าเรามีกรณีเดียวเท่านั้นที่เราอาจตั้งชื่อว่า
Collision
แต่คุณสมบัติทั้งหมดหรือวิธีการทั้งหมดที่ตะกร้าสินค้าเชื่อมต่อกับตะกร้าสินค้า
ดังนั้น แทนที่จะมีหลายฟังก์ชันที่สามารถแทนที่ได้ ฉันมีเนมสเปซเดียวเท่านั้น
และอีกอย่าง นี่ก็เป็นหนึ่งในเหตุผลที่ฉันไม่แนะนำให้ทำสิ่งนี้
คุณสามารถนำเข้าดาวได้จริง
และสิ่งนี้บอกว่า เฮ้ จากโมดูลยูทิลิตี้ นำเข้าทุกอย่าง
และเมื่อคุณทำอย่างนั้น
คุณจะเห็นว่าเราได้รับข้อผิดพลาดอีกครั้งเนื่องจากนำเข้าราคาสูงสุดด้วย
และเนื่องจากเราไม่รู้ด้วยซ้ำว่าตอนนี้กำลังนำเข้าอะไร เราจึงมองไม่เห็น
เราต้องไปที่ไฟล์เพื่อดู
พอเจอ error แบบนี้ เราก็จะเป็น เกิดอะไรขึ้น?
ฉันคิดว่าแม็กซ์กำลังทำงานและเป็นเพราะสายนี้
ดังนั้นจึงเป็นเรื่องดีเสมอที่จะพูดให้ชัดเจนและพูดในสิ่งที่คุณต้องการนำเข้า
แต่ตอนนี้ขอลบ Max ก่อน
แต่อย่างที่คุณเห็น โมดูลมีความสำคัญในรูปแบบต่างๆ
คำแนะนำของฉันคือต้องชัดเจนเสมอและพูดในสิ่งที่คุณต้องการนำเข้า
และรูปแบบมักจะตามมาโดยใช้คำสั่งนำเข้าตามด้วยโมดูลแพ็คเกจหรือนำเข้าโมดูล
หรือคุณสามารถทำคำสั่ง from เพื่อให้เป็น package, sub, package และ module ได้ตามต้องการ หรือคุณสามารถทำโมดูลแล้วพูดว่า
import และฟังก์ชันเฉพาะหรือโมดูลจริงเอง
ทำได้หลายวิธีขึ้นอยู่กับความต้องการของคุณ
ประเด็นสำคัญที่นี่คือโมดูลและแพ็คเกจช่วยให้เรามีแนวปฏิบัติด้านวิศวกรรมที่ดี และสร้างโครงการขนาดใหญ่ในรูปแบบที่เป็นระเบียบ
แต่ยังคงมีไฟล์เหล่านี้ทั้งหมด
คุยกันครับ.
ไม่เป็นไร.
นั่นเป็นจำนวนมาก
มาเรียนรู้เพิ่มเติมในวิดีโอหน้ากัน