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