ตัวแปรมีสองประเภท:ตัวแปรส่วนกลางและตัวแปรท้องถิ่น
ขอบเขตของตัวแปรโกลบอลคือโปรแกรมทั้งหมด ในขณะที่ขอบเขตของตัวแปรโลคัลจะจำกัดอยู่ที่ฟังก์ชันที่กำหนดไว้
def func(): x = "Python" print(x) print(s) s = "Tutorialspoint" print(s) func() print(x)
ในโปรแกรมด้านบน x เป็นตัวแปรท้องถิ่นในขณะที่ s เป็นตัวแปรส่วนกลาง เราสามารถเข้าถึงตัวแปรท้องถิ่นได้เฉพาะภายในฟังก์ชันที่กำหนดไว้เท่านั้น (func() ด้านบน) และพยายามเรียกตัวแปรท้องถิ่นนอกขอบเขต (func()) จะ ผ่านข้อผิดพลาด อย่างไรก็ตาม เราสามารถเรียกตัวแปรส่วนกลางได้ทุกที่ในโปรแกรม รวมถึงฟังก์ชัน (func()) ที่กำหนดไว้ในโปรแกรม
ตัวแปรท้องถิ่น
ตัวแปรท้องถิ่นสามารถเข้าถึงได้ภายในขอบเขตเท่านั้น (เช่น func() ด้านบน)
เช่นเดียวกับในโปรแกรมด้านล่าง - มีสองตัวแปรในเครื่อง – x และ y
def sum(x,y): sum = x + y return sum print(sum(5, 10))
ผลลัพธ์
15
ตัวแปร x และ y จะทำงาน/ใช้ภายในฟังก์ชัน sum() เท่านั้น และไม่มีอยู่นอกฟังก์ชัน ดังนั้นการพยายามใช้ตัวแปรท้องถิ่นนอกขอบเขต อาจใช้ NameError เห็นได้ชัดว่าบรรทัดล่างนี้ใช้ไม่ได้
print(x)
ตัวแปรทั่วโลก
สามารถใช้ตัวแปรส่วนกลางได้ทุกที่ในโปรแกรม เนื่องจากขอบเขตคือโปรแกรมทั้งหมด
มาทำความเข้าใจตัวแปรโกลบอลด้วยตัวอย่างง่ายๆ -
z = 25 def func(): global z print(z) z=20 func() print(z)
ผลลัพธ์
25 20
func() การเรียก ค่าตัวแปรโกลบอลจะเปลี่ยนไปสำหรับทั้งโปรแกรม
ตัวอย่างด้านล่างแสดงการรวมกันของตัวแปรท้องถิ่นและตัวแปรส่วนกลางและพารามิเตอร์ของฟังก์ชัน -
def func(x, y): global a a = 45 x,y = y,x b = 33 b = 17 c = 100 print(a,b,x,y) a,b,x,y = 3,15,3,4 func(9,81) print (a,b,x,y)
ผลลัพธ์
45 17 81 9 45 15 3 4