ฉันต้องการตอบคำถามที่คุณอาจมีหรือไม่มี แต่มันเป็นสิ่งที่ต้องใช้เวลาหลายปีกว่าจะเข้าใจ
และนั่นคือสาเหตุที่ไม่ใช่แค่มีทุกอย่างเป็นตัวแปรทั่วโลก
ฉันหมายถึงความสับสนทั้งหมดนี้ว่าใครมีสิทธิ์เข้าถึงใคร
จะง่ายแค่ไหนถ้าทุกอย่างอยู่ในหน้าหลัก?
ข้อมูลทั้งหมดของเรา ข้อมูลทั้งหมดบนขอบเขตทั่วโลกของเรา เพื่อให้ทุกอย่างเข้าถึงทุกสิ่งได้
จะไม่ง่ายกว่านี้หรือ
และคุณจะพูดถูก
ฉันหมายความว่าจะทำให้อาการปวดหัวทั้งหมดนี้หายไปใช่ไหม
แต่คุณต้องจำไว้ว่าเครื่องจักรไม่มีพลังงานไม่จำกัด ไม่มี CPU ไม่จำกัด ไม่มีหน่วยความจำไม่จำกัด
พวกเขาทั้งหมดมีทรัพยากรจำกัด
และในฐานะที่เป็นโปรแกรมเมอร์ เราต้องตระหนักถึงทรัพยากรที่เราใช้ เพราะบางครั้งอาจทำให้เราต้องเสียเงิน และบางครั้งอาจทำให้คอมพิวเตอร์ของเราพังได้
และขอบเขตก็แสดงให้เห็นอย่างชัดเจนในเรื่องนี้
ตัวอย่างเช่น รหัสนี้ตรงนี้ เมื่อฟังก์ชันนี้ทำงาน เรากำลังสร้างตำแหน่งในหน่วยความจำเพียงแห่งเดียวในหน่วยความจำสำหรับตัวแปร
X ในทางเทคนิค
ดังนั้นเราจึงมีชั้นวางหนังสือนั้นในคอมพิวเตอร์ของเรา นั่นคือ X ซึ่งชี้ไปที่โลคัล เมื่อเราเรียกใช้ฟังก์ชันนี้จริงๆ
แล้วเมื่อเราบอกว่าไม่ใช่คนในพื้นที่ เรากำลังบอกว่าอย่าสร้างชั้นวางหนังสืออีกชั้นให้เรา
เพียงใช้อันที่เรามีอยู่แล้วและกำหนดให้ไม่ใช่ในเครื่อง
ถ้าเราไม่มีบรรทัดนี้ เมื่อถึงบรรทัดที่เจ็ด เราได้ใส่หน่วยความจำ x เท่ากับโลคัล และ x เท่ากับไม่ใช่ในเครื่อง
ดังนั้นเราจึงมีสองตำแหน่งในหน่วยความจำในขณะนี้
ตอนนี้ไม่ใช่เรื่องใหญ่ เพราะในยุคนี้ เรามีความทรงจำมากมาย
แต่เมื่อโปรแกรมมีขนาดใหญ่ขึ้นเรื่อย ๆ สิ่งนี้จะกลายเป็นปัญหาเล็กน้อย
OC แล้วฟังก์ชั่นล่ะ?
ฉันหมายถึง เราเรียนรู้ว่าฟังก์ชันต่างๆ ทำให้เราไม่ต้องพูดซ้ำและสามารถโทรออกได้หลายครั้ง
แต่การใช้ฟังก์ชันที่ดีอีกอย่างหนึ่งก็คือ เมื่อเราเรียกใช้ฟังก์ชันนี้และทั้งหมดนี้เสร็จสิ้น คอมพิวเตอร์และตัวแปลไพธอนจะทำลายหน่วยความจำทั้งหมดโดยเฉพาะ
นั่นคือ เมื่อเราใช้ฟังก์ชันภายนอกเสร็จแล้ว ผมเรียก print x ตรงนี้ไม่ได้
มันจะทำให้ฉันมีข้อผิดพลาด
จะบอกว่า ผมไม่รู้ว่า X คืออะไร แล้วทำไมถึงเป็นอย่างนั้น?
เป็นเพราะหลังจากที่เราเรียกฟังก์ชันนี้ ไพธอน ที่เราเรียกว่าตัวรวบรวมขยะ จะพูดว่า เฮ้ ดูเหมือนว่าเราจะทำฟังก์ชันนี้เสร็จแล้ว
และฉันเห็นว่าตัวแปร X นี้ดีในตัวแปร X นี้ เราจะไม่ใช้เพราะเราทำฟังก์ชันนี้เสร็จแล้ว
ผมจะเก็บขยะนั้นแล้วโยนทิ้งไป
ดังนั้นฉันจะล้างตู้หน่วยความจำนั้นเพื่อให้ทรัพยากรอื่นหรือโปรแกรมอื่นสามารถใช้งานได้
และนั่นเป็นคุณสมบัติที่ดีจริงๆ ที่ Python จะลบสิ่งเหล่านี้ให้คุณโดยอัตโนมัติ เพื่อไม่ให้หน่วยความจำของคอมพิวเตอร์อุดตัน
และนั่นคือเหตุผลที่ขอบเขตมีประโยชน์
เราไม่ต้องคิดเกี่ยวกับมันในรายละเอียดอย่างที่ฉันได้กล่าวไปแล้ว แต่ดีใจที่รู้ว่ามีโปรแกรมอยู่ตรงนั้น
เพื่อที่โปรแกรมของคุณจะไม่ต้องใช้หน่วยความจำมากและสามารถทำงานได้อย่างมีประสิทธิภาพ
นี่เป็นหัวข้อล่วงหน้าเล็กน้อย แต่ฉันต้องการรวมไว้ที่นี่เพื่อให้คุณสามารถคิดได้ว่าเหตุใดโปรแกรมต่างๆ
จึงได้รับการออกแบบในลักษณะที่เป็นอยู่
ไม่เป็นไร.
ฉันจะหยุดพูดเดี๋ยวนี้
แล้วพบกันใหม่ในวิดีโอหน้าครับ
ลาก่อน.