ตัวแปรต่างๆ ในโปรแกรม python มีขอบเขตต่างกัน ตัวแปรอาจเข้าถึงหรือไม่สามารถเข้าถึงได้ภายในฟังก์ชัน ทั้งนี้ขึ้นอยู่กับตำแหน่งที่ประกาศ บางครั้งเราจำเป็นต้องแก้ไขตัวแปรที่มีอยู่ในฟังก์ชันจากนอกขอบเขตปัจจุบัน ในสถานการณ์เช่นนี้ เราใช้ global keyword ที่มีชื่อตัวแปร
ต่อไปนี้เป็นประเด็นสำคัญเกี่ยวกับคำหลักทั่วโลก
-
ตัวแปรที่ประกาศนอกฟังก์ชันเป็นตัวแปรส่วนกลางโดยค่าเริ่มต้น
-
เราใช้คำหลักสากลสำหรับตัวแปรที่อยู่ภายในฟังก์ชันเพื่อให้สามารถแก้ไขได้
-
หากไม่มีโกลบอลคีย์เวิร์ด ตัวแปรภายในฟังก์ชันจะเป็นโลคัลตามค่าเริ่มต้น
ไม่มีทั่วโลก
ในตัวอย่างด้านล่าง เราจะมาดูกันว่าการเปลี่ยนแปลงของตัวแปรเกิดขึ้นได้อย่างไรโดยไม่มีคีย์เวิร์ดสากล ซึ่งจะช่วยให้เราเข้าใจว่าคีย์เวิร์ดสากลสร้างความแตกต่างในโปรแกรมถัดไปอย่างไร ในตัวอย่างด้านล่าง เราพยายามแก้ไขตัวแปรส่วนกลางภายในฟังก์ชัน แต่เกิดข้อผิดพลาดขึ้นเนื่องจากเราไม่สามารถแก้ไขตัวแปรส่วนกลางภายในฟังก์ชันได้
ตัวอย่าง
var = 321 # function to modify the variable def modify(): var = var * 2 print(var) # calling the function modify()
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
UnboundLocalError: local variable 'var' referenced before assignment
กับทั่วโลก
ตอนนี้เราประกาศตัวแปรภายในฟังก์ชันพร้อมกับคำหลัก global ทำให้ตัวแปรสามารถแก้ไขได้
ตัวอย่าง
var = 321 # function to modify the variable def modify(): global var var = var * 2 print(var) # calling the function modify()
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
642
ทั่วโลกภายในฟังก์ชันที่ซ้อนกัน
หากเราต้องใช้ฟังก์ชันที่ซ้อนกัน เราต้องประกาศ global keyword ในฟังก์ชัน inner เพื่อให้สามารถแก้ไขตัวแปรได้
ตัวอย่าง
def outer_func(): var = 321 # function to modify the variable def modify(): global var var = var * 2 print(var) # calling the function modify() outer_func()
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
642