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

ขอบเขตตัวแปร (Variable Scope) ในฟังก์ชัน Python ทำงานอย่างไร

ตัวแปรใน Python สร้างขึ้นเมื่อมีการ assign ค่า ไม่ต้อง declare ก่อน

  • Global scope: ตัวแปรระดับโมดูล เข้าถึงได้ในฟังก์ชัน
  • Local scope: ตัวแปรที่ assign ภายในฟังก์ชัน เป็น local ของฟังก์ชันนั้น

ตัวอย่าง Local vs Global

x = 141

def foo():
    x = 424  # local variable
    print(x)

foo()   # 424
print(x)  # 141 (global ไม่เปลี่ยน)

การ assign x = 424 ในฟังก์ชันสร้าง local variable ใหม่ ไม่เกี่ยวกับ global x

ใช้ global keyword

x = 141

def foo():
    global x
    x = 424
    print(x)

foo()   # 424
print(x)  # 424 (global ถูกเปลี่ยน)

ควรใช้ตัวแปรในขอบเขตแคบที่สุดที่จำเป็น (narrowest scope)