
เขียนโปรแกรมภาษา Python ตอนที่ 10 ตัวแปรประเภท Global
ตัวแปรแบบ Global คือตัวแปรใด ๆ ที่สร้างไว้นอกฟังก์ชัน ซึ่งจะสามารถเรียกใช้ได้ทั้งในฟังก์ชันและนอกฟังก์ชัน
quality = "good" def show(): print("Python is " + quality) show() print("Java is " + quality)
Python is good
Java is good
- บรรทัดที่ 1 สร้างตัวแปร
quality
ไว้นอกฟังก์ชัน - บรรทัดที่ 4 เรียกใช้ตัวแปร
quality
ภายในฟังก์ชัน - บรรทัดที่ 8 เรียกใช้ตัวแปร
quality
ภายนอกฟังก์ชัน
จะเห็นได้ว่า ตัวแปร quality
สามารถเรียกใช้ได้ทั้งภายในและภายนอกฟังก์ชัน เพราะเป็นตัวแปรแบบ Global นั่นเอง
ถ้าเราสร้างตัวแปรที่มีชื่อเดียวกันทั้งภายในและภายนอกฟังก์ชัน ตัวแปรทั้ง 2 ตัว จะถือว่าเป็นคนละตัวแปรกัน ถึงแม้จะมีชื่อเดียวกันก็ตาม โดย
- ตัวแปรที่สร้างไว้นอกฟังก์ชัน จะเป็นตัวแปรแปรประเภท Global สามารถเรียกใช้งานได้ทุกที่
- ตัวแปรที่สร้างไว้ภายในฟังก์ชัน จะเป็นตัวแปรประเภท Local สามารถเรียกใช้งานได้เฉพาะในฟังก์ชันนั้นเท่านั้น
- การกำหนดค่าให้กับตัวแปรที่อยู่ภายในฟังก์ชัน (Local) จะไม่มีผลกับค่าของตัวแปรที่อยู่นอกฟังก์ชัน (Global)
quality = "good" def show(): quality = "best" print("Python is " + quality) show() print("Python is " + quality)
Python is best
Python is good
- ตัวแปร
quality
ในบรรทัดที่ 1 เป็นตัวแปรแบบ Global เพราะสร้างไว้นอกฟังก์ชัน - ตัวแปร
quality
ในบรรทัดที่ 4 เป็นตัวแปรแบบ Local เพราะสร้างไว้ภายในฟังก์ชัน - ตัวแปร
quality
ทั้ง 2 ตัว ถึงจะมีชื่อเดียวกัน แต่ถือว่าไม่เกี่ยวข้องกัน
การใช้คีย์เวิร์ด global
อย่างไรก็ตาม ถ้าต้องการสร้างตัวแปรแบบ Global ไว้ภายในฟังก์ชัน ก็สามารถทำได้เช่นกัน โดยการระบุคีย์เวิร์ด global
ไว้ข้างหน้าตัวแปร ซึ่งจะมีผลทำให้ตัวแปรนั้นสามารถเรียกใช้จากภายนอกฟังก์ชันได้ด้วย
def show(): global quality quality = "best" print("Python is " + quality) show() print("Python is " + quality)
Python is best
Python is best
- บรรทัดที่ 2 สร้างตัวแปรชื่อ
quality
ภายในฟังก์ชัน โดยระบุคีย์เวิร์ดglobal
ไว้ด้านหน้า ทำให้ตัวแปรดังกล่าวเป็นตัวแปรประเภท Global - บรรทัดที่ 3 กำหนดค่าให้กับตัวแปร
quality
ด้วยวิธีปกติ - บรรทัดที่ 4 เรียกใช้ตัวแปร
quality
ภายในฟังก์ชัน - บรรทัดที่ 8 เรียกใช้ตัวแปร
quality
ภายนอกฟังก์ชันได้อย่างไม่มีปัญหา
ด้วยคีย์เวิร์ด global
เราสามารถเปลี่ยนแปลงค่าของตัวแปรประเภท Global ภายในฟังก์ชันได้ ดัวตัวอย่างต่อไปนี้
quality = "good" print("Python is " + quality) def show(): global quality quality = "best" print("Python is " + quality) show() print("Python is " + quality)
Python is good
Python is best
Python is best
- บรรทัดที่ 1 สร้างตัวแปร
quality
ไว้ภายนอกฟังก์ชัน (เป็นตัวแปร Global โดยอัตโนมัติ) - บรรทัดที่ 2 เรียกใช้ตัวแปร
quality
ตามปกติ (จะได้ค่าตามที่กำหนดไว้) - บรรทัดที่ 4 อ้างถึงตัวแปร
quality
ที่อยู่นอกฟังก์ชัน ด้วยการระบุคีย์เวิร์ดglobal
- บรรทัดที่ 5 กำหนดค่าใหม่ให้กับตัวแปร
quality
(มีผลกับตัวแปรquality
ที่อยู่นอกฟังก์ชัน) - บรรทัดที่ 6 เรียกใช้ตัวแปร
quality
ภายในฟังก์ชัน (จะได้ค่าที่กำหนดใหม่) - บรรทัดที่ 10 เรียกใช้ตัวแปร
quality
ภายนอกฟังก์ชัน (จะได้ค่าที่กำหนดใหม่เช่นกัน เพราะค่าถูกเปลี่ยนภายในฟังก์ชันไปแล้ว)