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

คีย์เวิร์ด Global ใน Python

ตัวแปรใน Python มีขอบเขต (scope) ต่างกัน ขึ้นอยู่กับตำแหน่งที่ประกาศ อาจเข้าถึงได้หรือไม่ได้ภายในฟังก์ชัน หากต้องการแก้ไขตัวแปรที่อยู่ภายนอกขอบเขตฟังก์ชัน จะใช้คีย์เวิร์ด global

จุดสำคัญเกี่ยวกับ global:

  • ตัวแปรที่ประกาศนอกฟังก์ชันเป็น global variable โดยค่าเริ่มต้น
  • ใช้ global กับตัวแปรภายในฟังก์ชัน เพื่อให้สามารถแก้ไขค่าได้
  • ถ้าไม่มี global ตัวแปรในฟังก์ชันจะเป็น local variable โดยค่าเริ่มต้น

ไม่ใช้ Global

ตัวอย่างพยายามแก้ไข global variable ภายในฟังก์ชันโดยไม่มี global จะเกิดข้อผิดพลาด

โค้ดตัวอย่าง

var = 321

def modify():
    var = var * 2
    print(var)

modify()

ผลลัพธ์

UnboundLocalError: local variable 'var' referenced before assignment

ใช้ Global

เพิ่ม global var ภายในฟังก์ชัน จะสามารถแก้ไขค่าได้

โค้ดตัวอย่าง

var = 321

def modify():
    global var
    var = var * 2
    print(var)

modify()

ผลลัพธ์

642

Global ภายใน Nested Functions

ถ้ามีฟังก์ชันซ้อนกัน (nested) ต้องประกาศ global ในฟังก์ชันในสุด เพื่อแก้ไขตัวแปรได้

โค้ดตัวอย่าง

def outer_func():
    var = 321
    def modify():
        global var
        var = var * 2
        print(var)
    modify()

outer_func()

ผลลัพธ์

642