ทำความเข้าใจขอบเขตตัวแปรส่วนกลางใน python

Understand Global Variables Scope Python



ตัวแปรสองประเภทสามารถกำหนดได้ในภาษาการเขียนโปรแกรมส่วนใหญ่ เหล่านี้เป็นตัวแปรส่วนกลางและตัวแปรท้องถิ่น ตัวแปรที่กำหนดนอกฟังก์ชันเรียกว่าตัวแปรส่วนกลาง ตัวแปรนี้สามารถเข้าถึงได้และเปลี่ยนแปลงได้จากทุกที่ในสคริปต์ ตัวแปรที่ประกาศภายในฟังก์ชันเรียกว่าตัวแปรท้องถิ่น แต่ถ้าชื่อตัวแปรเดียวกันเป็นตัวแปรส่วนกลางและภายใน ตัวแปรภายในฟังก์ชันจะได้รับลำดับความสำคัญและค่าของตัวแปรส่วนกลางจะถูกละเว้น ขอบเขตของตัวแปรส่วนกลางในสคริปต์ python จะแสดงในบทช่วยสอนนี้โดยใช้ตัวอย่างต่างๆ

ตัวอย่างที่ 1: การใช้ตัวแปรส่วนกลางอย่างง่าย

ตัวอย่างต่อไปนี้แสดงการใช้ตัวแปรส่วนกลางอย่างง่ายภายในฟังก์ชันและภายนอกฟังก์ชัน ที่นี่ตัวแปรโกลบอลชื่อ ข้อความ ใช้เพื่อกำหนดข้อมูลสตริง ฟังก์ชันแบบกำหนดเองที่ชื่อว่า พิมพ์ข้อความ () ถูกกำหนดให้พิมพ์ค่าของตัวแปรส่วนกลาง ค่าของ ข้อความ ตัวแปรจะถูกพิมพ์ภายในฟังก์ชันและภายนอกฟังก์ชันหลังจากเปลี่ยนค่าแล้ว







#!/usr/bin/env python3

# กำหนดตัวแปรทั่วโลก
ข้อความ= 'ยินดีต้อนรับสู่ LinuxHint'

# กำหนดฟังก์ชั่น
defพิมพ์ข้อความ():

# พิมพ์ตัวแปรส่วนกลางจากฟังก์ชัน
พิมพ์('ตัวแปรส่วนกลางภายในฟังก์ชัน:NS',ข้อความ)

#เรียกใช้งาน
พิมพ์ข้อความ()

# เปลี่ยนค่าของตัวแปรส่วนกลาง
ข้อความ= 'เรียนรู้การเขียนโปรแกรม Python'

# พิมพ์ค่าปัจจุบันของตัวแปรส่วนกลาง
พิมพ์('ฟังก์ชันภายนอกตัวแปรทั่วโลก:NS',ข้อความ)

เอาท์พุท:



ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์ มันพิมพ์ค่า ' ยินดีต้อนรับสู่ LinuxHint' ที่กำหนดให้กับตัวแปรก่อนเรียกใช้ฟังก์ชัน ต่อไปก็พิมพ์ค่า 'เรียนรู้การเขียนโปรแกรม Python' หลังจากเปลี่ยนค่าของตัวแปร







ตัวอย่างที่ 2: การใช้ตัวแปรโกลบอลและโลคัลที่มีชื่อเดียวกัน

หากคุณต้องการประกาศชื่อตัวแปรภายในฟังก์ชันที่ประกาศเป็นตัวแปรส่วนกลางแล้วใน python และต้องการใช้ตัวแปร ตัวแปรนั้นจะถือว่าตัวแปรนั้นเป็นตัวแปรในเครื่องและสร้างข้อผิดพลาด สคริปต์ต่อไปนี้จะแสดงข้อผิดพลาด ที่นี่, ข้อความ ตัวแปรถูกกำหนดให้เป็นตัวแปรโกลบอลและโลคัล

#!/usr/bin/env python3

# กำหนดตัวแปรทั่วโลก
ข้อความ= 'ฉันชอบไพธอน'

# กำหนดฟังก์ชั่น
defพิมพ์ข้อความ():
พิมพ์(ข้อความ)

ข้อความ= 'ฉันชอบ PHP'

#เรียกใช้งาน
พิมพ์ข้อความ()

เอาท์พุท:



ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์

เพื่อหลีกเลี่ยงสถานการณ์ข้างต้น และหากคุณต้องการประกาศตัวแปรโลคัลที่มีชื่อเดียวกับตัวแปรโกลบอล คุณต้องกำหนดตัวแปรโลคัลภายในฟังก์ชันก่อน สคริปต์ต่อไปนี้แสดงว่าการเปลี่ยนแปลงในตัวแปรท้องถิ่นไม่ได้ทำการเปลี่ยนแปลงใดๆ ในตัวแปรส่วนกลาง ข้อความ ตัวแปรถูกพิมพ์ภายในและภายนอกของฟังก์ชันที่นี่

#!/usr/bin/env python3

# กำหนดตัวแปรทั่วโลก
ข้อความ= 'ฉันชอบไพธอน'

# กำหนดฟังก์ชั่น
defพิมพ์ข้อความ():
# กำหนดมูลค่าท้องถิ่น
ข้อความ= 'ฉันชอบ PHP'
# พิมพ์ตัวแปรท้องถิ่น text
พิมพ์('ค่าของ 'ข้อความ' ภายในฟังก์ชัน:NS',ข้อความ)

#เรียกใช้งาน
พิมพ์ข้อความ()

# พิมพ์ตัวแปรส่วนกลาง text
พิมพ์('ค่าของ 'ข้อความ' ฟังก์ชันภายนอก:NS',ข้อความ)

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์

ตัวอย่างที่ 3: การใช้ตัวแปรส่วนกลางภายในฟังก์ชัน

ตัวอย่างก่อนหน้านี้แสดงให้เห็นว่าตัวแปรส่วนกลางไม่สามารถเข้าถึงได้ภายในฟังก์ชัน คุณสามารถใช้ได้ โลก คีย์เวิร์ดเพื่อเข้าถึงตัวแปรส่วนกลางจากฟังก์ชันใดๆ ในสคริปต์ต่อไปนี้ cal_percentage() ฟังก์ชันถูกกำหนดให้คำนวณเปอร์เซ็นต์ของตัวเลขใดๆ ที่ใช้ทั้งตัวแปรส่วนกลางและตัวแปรท้องถิ่น ที่นี่, หนึ่ง เป็นตัวแปรส่วนกลางและ perVal เป็นตัวแปรท้องถิ่น ทั่วโลก คีย์เวิร์ดใช้ที่นี่เพื่อระบุตัวแปรส่วนกลางภายในฟังก์ชัน และค่าของตัวแปรส่วนกลางจะเปลี่ยนแปลงภายในฟังก์ชัน

#!/usr/bin/env python3

# ใช้ค่าจำนวนเต็ม
หนึ่ง= int(ป้อนข้อมูล('ป้อนหมายเลข : '))

#กำหนดฟังก์ชั่น
defcal_percentage():
# รับรู้ตัวแปรทั่วโลกโดยใช้คำหลักทั่วโลก
ทั่วโลกหนึ่ง

# ใช้ค่าจำนวนเต็มเป็นเปอร์เซ็นต์
perVal= int(ป้อนข้อมูล('ป้อนค่าเปอร์เซ็นต์ : '))

# คำนวณค่าเปอร์เซ็นต์
ผลลัพธ์= ลอย((ไม่ว่า *perVal)/100)

# พิมพ์ผลการจัดรูปแบบ
พิมพ์('%d เปอร์เซ็นต์ของ %d = %f'%(perVal,หนึ่ง,ผลลัพธ์))

#เปลี่ยนค่าตัวแปรส่วนกลาง
หนึ่ง= 500

#พิมพ์ค่าตัวแปรส่วนกลางก่อนเรียกใช้ฟังก์ชัน
พิมพ์('NSค่าของ num = %d'% ต่อหนึ่ง)

#เรียกใช้งาน
cal_percentage()

# พิมพ์ค่าตัวแปรส่วนกลางหลังจากเรียกใช้ฟังก์ชัน
พิมพ์('NSค่าของ num = %d'% ต่อหนึ่ง)

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์ ที่นี่ 10% ของ 350 ถูกคำนวณและพิมพ์

ตัวอย่างที่ 4: การใช้ตัวแปรส่วนกลางจากสคริปต์อื่น

ตัวอย่างต่อไปนี้แสดงให้เห็นว่าตัวแปรส่วนกลางที่ประกาศในสคริปต์หนึ่งสามารถใช้กับสคริปต์อื่นได้อย่างไร สมมติว่าชื่อไฟล์คือ global6.py ที่จะใช้ตัวแปรโกลบอลที่กำหนดไว้ในไฟล์ชื่อ global5.py . มีการประกาศตัวแปรทั่วโลกสามตัวใน global5.py . ต้องนำเข้า global5 เพื่อใช้ตัวแปรในสคริปต์อื่น สคริปต์ของ global6.py จะคำนวณเงินเดือนของพนักงานสามประเภทตามค่าอินพุตและตัวแปรทั่วโลก

#!/usr/bin/env python3
#นี่คือไฟล์ global5.py

#โครงสร้างเงินเดือนเบื้องต้นของบริษัท
ขั้นพื้นฐาน= 5000
ทางการแพทย์= 500
ขนส่ง= 500 #!/usr/bin/env python3
#นี่คือไฟล์ global6.py

# นำเข้าตัวแปรส่วนกลางจาก global5.py
นำเข้าglobal5

#จดชื่อพนักงาน
ชื่อ= ป้อนข้อมูล('ป้อนชื่อพนักงาน: ')
#จดชื่อโพสต์
โพสต์= ป้อนข้อมูล('ป้อนโพสต์:')

# เริ่มต้นตัวแปรข้อผิดพลาด
ข้อผิดพลาด= เท็จ

#เช็คโพสและกำหนดฐานเงินเดือนตามโพส
ถ้า(โพสต์.บน() == 'ผู้บริหารสูงสุด'):
ขั้นพื้นฐาน=โกลบอล5.ขั้นพื้นฐาน+(โกลบอล5.ขั้นพื้นฐาน*0.4)
เอลฟ์(โพสต์.บน() == 'ผู้จัดการ'):
ขั้นพื้นฐาน=โกลบอล5.ขั้นพื้นฐาน+(โกลบอล5.ขั้นพื้นฐาน*0.25)
เอลฟ์(โพสต์.บน() == 'นักบัญชี'):
ขั้นพื้นฐาน=โกลบอล5.ขั้นพื้นฐาน+(โกลบอล5.ขั้นพื้นฐาน*0.15)
อื่น:
# ตั้งค่าข้อผิดพลาดเป็นจริงหากไม่พบค่าโพสต์
ข้อผิดพลาด= จริง

#พิมพ์เงินเดือนหากมีข้อผิดพลาดลุกลาม
ถ้า (ข้อผิดพลาด== เท็จ):
เงินเดือน=พื้นฐาน + ทั่วโลก5.ทางการแพทย์+ ทั่วโลก5.ขนส่ง
พิมพ์('เงินเดือน %s คือ %d'%(ชื่อ,เงินเดือน))
อื่น:
พิมพ์('ไม่พบโพสต์')

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์ ในที่นี้ สคริปต์จะทำงานสองครั้งโดยมีโพสต์ที่ถูกต้องและโพสต์ที่ไม่ถูกต้อง

บทสรุป:

แนวคิดของตัวแปรส่วนกลางใน python ได้อธิบายไว้ในบทช่วยสอนนี้ พร้อมด้วยตัวอย่างง่ายๆ สำหรับผู้ใช้ python ใหม่ ฉันหวังว่าผู้อ่านจะได้รับความรู้ที่ถูกต้องเกี่ยวกับตัวแปรส่วนกลางและตัวแปรท้องถิ่นหลังจากอ่านบทช่วยสอนนี้

ดูวิดีโอของผู้เขียน: ที่นี่