ขอบเขตของตัวแปร หมายถึงพื้นที่ที่ตัวแปรสามารถใช้ได้ เนื่องจากเมื่อเราใช้ฟังก์ชัน ตัวแปรบางตัวจะถูกกำหนดไว้ในโปรแกรมหลัก และบางตัวจะถูกกำหนดในฟังก์ชันที่เรียกว่า เมื่อโปรแกรมหลักของเราใช้ฟังก์ชัน เมื่อกำหนด ตัวแปร เกิดข้อยกเว้นขึ้น ขอแนะนำตัวแปรท้องถิ่นและตัวแปรทั่วโลก
ตัวแปรท้องถิ่นตามชื่อ คือตัวแปรที่ทำงานในพื้นที่ท้องถิ่น ถ้ามีการกำหนดตัวแปรในฟังก์ชัน ตัวแปรนั้นจะทำงานในฟังก์ชันเท่านั้น หากใช้ตัวแปรภายในฟังก์ชันภายนอกฟังก์ชัน ข้อยกเว้นจะเกิดขึ้น .
ดูตัวอย่างต่อไปนี้:
deftest():data='ตัวแปรท้องถิ่น'print('ส่งออกข้อมูลภายในฟังก์ชัน:',data)test()print('ส่งออกข้อมูลในโปรแกรมหลัก:',data)
ผลลัพธ์คือ:
ข้อมูลเอาต์พุตภายในฟังก์ชันคือ: ตัวแปรโลคัล Traceback(mostrecentcalllast):FileC:/Users/Qingyan/PycharmProjects/untitled/venv/Include/ts.py,line6,in<module>print('Output data in the main program: ', data) NameError:name'data'isnotdefed
เนื่องจากข้อมูลตัวแปรถูกกำหนดไว้ภายในฟังก์ชัน เมื่อเราใช้ข้อมูลตัวแปรในโปรแกรมหลัก จะมีปัญหาคือไม่มีตัวแปรที่กำลังเข้าถึงอยู่ ดังนั้น เราควรใส่ใจกับความจริงที่ว่าตัวแปรที่กำหนดไว้ภายใน ฟังก์ชั่นเป็นตัวแปรท้องถิ่น เว้นแต่จะประกาศเป็นอย่างอื่น พวกเขาจะไม่สามารถเข้าถึงได้
นอกจากนี้เรายังสามารถเข้าใจตัวแปรส่วนกลางได้จากความหมายที่แท้จริงว่าตัวแปรเหล่านี้ทำหน้าที่แบบโกลบอล โดยธรรมชาติแล้ว นักเรียนบางคนอาจคิดว่าตัวแปรโกลบอลจะต้องเป็นตัวแปรที่กำหนดไว้ในโปรแกรมหลักด้วย สองวิธีในการใช้ตัวแปรทั่วโลก:
ขอบเขตของตัวแปรที่เรากำหนดในโปรแกรมหลักนั้นเป็นแบบโกลบอล และเรายังสามารถใช้ตัวแปรเหล่านี้ได้โดยตรงในฟังก์ชันที่กำหนด ดูตัวอย่างต่อไปนี้:
data='ตัวแปรโกลบอล data'deftest():print('นี่คือตัวแปรโกลบอลที่ทำหน้าที่ในฟังก์ชัน:',data)test()print('นี่คือตัวแปรโกลบอลที่ทำหน้าที่นอกฟังก์ชัน:',data)
ผลลัพธ์ที่ได้:
นี่คือตัวแปรโกลบอลที่ทำหน้าที่ในฟังก์ชัน: ข้อมูลตัวแปรโกลบอล นี่คือตัวแปรโกลบอลที่ทำหน้าที่นอกฟังก์ชัน: ข้อมูลตัวแปรโกลบอล
วิธีนี้เป็นตัวแปรส่วนกลางที่เรามักจะใช้ ตัวแปรที่เรากำหนดในโปรแกรมหลักสามารถนำมาใช้โดยตรงภายในฟังก์ชัน
ตัวแปรที่เรากำหนดภายในฟังก์ชันสามารถตั้งโปรแกรมเป็นตัวแปรส่วนกลางได้ ในเวลานี้เราจำเป็นต้องใช้คำหลักส่วนกลาง
ขั้นแรก เรามาดูสิ่งที่เกิดขึ้นเมื่อชื่อของตัวแปรส่วนกลางและตัวแปรภายในเครื่องเหมือนกัน ลองดูตัวอย่างต่อไปนี้:
data='นี่คือตัวแปรโกลบอล data'print(data)deftest():data='นี่คือตัวแปรโลคัล data'print(data)test()print('ตรวจสอบข้อมูลตัวแปรโกลบอลอีกครั้ง:',data)
ผลลัพธ์คือ:
นี่คือข้อมูลตัวแปรโกลบอล นี่คือข้อมูลตัวแปรโลคอลอีกครั้ง: นี่คือข้อมูลตัวแปรโกลบอล
จากตัวอย่างนี้ เราจะเห็นว่าเมื่อชื่อของตัวแปรโกลบอลและตัวแปรโลคอลเหมือนกัน จะไม่ส่งผลกระทบต่อเนื้อหาของตัวแปรโกลบอล แต่หากเราต้องการแก้ไขค่าของตัวแปรโกลบอลในฟังก์ชัน เราก็จะพบว่า ต้องใช้คีย์เวิร์ดสากล
ดูตัวอย่างต่อไปนี้อีกครั้ง:
data='นี่คือตัวแปรโกลบอล data'print(data)deftest():globaldatadata='นี่คือตัวแปรโลคัล data'print(data)test()print('ตรวจสอบข้อมูลตัวแปรโกลบอลอีกครั้ง:',data)
ผลลัพธ์คือ:
นี่คือข้อมูลตัวแปรโกลบอล นี่คือข้อมูลตัวแปรโลคัลอีกครั้ง: นี่คือข้อมูลตัวแปรโลคัล
การประกาศภายในเครื่องจะบอกฟังก์ชันว่า global เป็นตัวแปรส่วนกลางผ่านคีย์เวิร์ด global ตัวแปรทั้งหมดใน global จะถูกแก้ไข คีย์เวิร์ด global สามารถทำให้ตัวแปรกลายเป็นตัวแปรส่วนกลางได้
เมื่อไม่มีการประกาศตัวแปรแบบโกลบอล เรายังสามารถใช้คีย์เวิร์ดระดับโลกในเครื่องเพื่อประกาศตัวแปรเป็นตัวแปรโกลบอลได้โดยตรง จากนั้นตัวแปรที่เรากำหนดในฟังก์ชันก็สามารถนำมาใช้ในโปรแกรมหลักได้ ดูตัวอย่างต่อไปนี้:
deftest():globaldatadata='นี่คือข้อมูลตัวแปรที่สร้างขึ้นในเครื่อง'print('นี่คือเอาต์พุตในฟังก์ชัน:',data)test()print('นี่คือเอาต์พุตในโปรแกรมหลัก:',data)
ผลลัพธ์คือ:
นี่คือเอาต์พุตในฟังก์ชัน: นี่คือข้อมูลตัวแปรที่สร้างขึ้นในเครื่อง นี่คือเอาต์พุตในโปรแกรมหลัก: นี่คือข้อมูลตัวแปรที่สร้างขึ้นในเครื่อง
จากตัวอย่างข้างต้น เราสามารถเข้าใจบทบาทของคีย์เวิร์ดสากลในการควบคุมตัวแปรโกลบอลได้ นอกจากนี้ เราควรใส่ใจกับการพยายามหลีกเลี่ยงไม่ให้ชื่อของตัวแปรโกลบอลและตัวแปรโลคัลเหมือนกันเมื่อเขียนโปรแกรม แม้ว่าพวกมันจะทำงานต่างกันก็ตาม พวกเขาจะส่งผลกระทบต่อปฏิสัมพันธ์ระหว่างพวกเขา เพียงเท่านี้สำหรับส่วนนี้ มาเรียนรู้เกี่ยวกับฟังก์ชันที่ไม่ระบุตัวตนในหัวข้อถัดไป