เรียนเขียนโปรแกรมง่ายๆกับ Expert Programming Tutor วันนี้เราจะมาเข้าสู่บท Scope
Local Scope
ตัวแปรที่สร้างขึ้นภายในฟังก์ชั่นของขอบเขตภายในของฟังก์ชันนั้น และสามารถใช้ได้เฉพาะภายในฟังก์ชันนั้นเท่านั้น
ตัวอย่าง
ตัวแปรที่สร้างขึ้นภายในฟังก์ชั่นนั้นซึ่งจะมีอยู่ในฟังก์ชั่นนั้นๆ
def myfunc(): myfunc() |
ผลลัพธ์
300 |
ฟังก์ชั่นภายในฟังก์ชั่น
ดังที่อธิบายไว้ในตัวอย่างข้างต้นตัวแปร x ไม่สามารถใช้งานนอกฟังก์ชั่นได้ แต่ใช้ได้สำหรับฟังก์ชั่นใด ๆที่อยู่ภายในฟังก์ชั่นนั้นๆ
ตัวอย่าง
ตัวแปร local สามารถเข้าถึงได้จากฟังก์ชันภายในฟังก์ชัน
def myfunc(): myfunc() |
ผลลัพธ์
300 |
Global Scope
ตัวแปรที่สร้างขึ้นในmainของโค้ด ในไพธอนจะเรียกว่า global variableและ global scope นอกจากนี้global variable สามารถใช้ได้จากภายในขอบเขตต่างๆในโค้ดได้
ตัวอย่าง
ตัวแปรที่สร้างขึ้นนอกฟังก์ชั่นเป็นแบบglobal และนักพัฒนาหรือบุคคลทั่วไปสามารถนำไปใช้งานได้
x = 300 def myfunc(): myfunc() |
ผลลัพธ์
300 |
Naming Variables
หากนักเรียนทำงานด้วยชื่อตัวแปรเดียวกันทั้งภายในและภายนอกฟังก์ชั่น ไพธอนจะเรียกใช้งานมันโดยนำตัวแปรสองตัวแยกกัน หนึ่งตัวจะมีอยู่ใน global scope (นอกฟังก์ชั่น) และอีกอันหนึ่งที่มีอยู่ในlocal scope (ภายในฟังก์ชั่น)
ตัวอย่าง
ฟังก์ชั่นจะปรินต์ local x จากนั้นโค้ดจะปรินต์ global x
x = 300 |
ผลลัพธ์
200 |
Global Keyword
หากนักเรียนต้องการสร้างglobal variable แต่มันยังติดอยู่ในglobal scope สามารถเรียกใช้คำสั่ง global และคำสั่ง global ยังทำเป็น variable global ได้ เเละการใช้
ตัวอย่าง
ถ้านักเรียนใช้ Global Keyword ตัวแปรจะอยู่ใน global scope
def myfunc(): |
ผลลัพธ์
300 |
นอกจากนี้การเรียกใช้ global ถ้านักเรียนต้องการที่จะเปลี่ยนแปลง variable global ภายในฟังก์ชั่น
ตัวอย่าง
ในการเปลี่ยนvalue ของ global variable ภายในฟังก์ชันให้อ้างอิงตัวแปรโดยใช้คีย์เวิร์ด global
x = 300 |
ผลลัพธ์
200 |
การใช้ Scope นั้น ตัวแปรที่สร้างขึ้นภายในฟังก์ชั่นของขอบเขตภายในของฟังก์ชันนั้น และสามารถใช้ได้เฉพาะภายในฟังก์ชันนั้นเท่านั้น เเละยังมี global scope global keyword ซึ่งมีวิธีใช้แตกต่างกัน ฉะนั้นจงจำการใช้งานไว้ดีดีด้วยนะครับ
แปลจาก https://www.w3schools.com/python/python_scope.asp
Tag ที่น่าสนใจ: python scope local_scope global_scope naming_variables global_keyword programming functions variables python_basics
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com