ตัวแปรใน 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)