คำสั่ง global ใน Python
สมมติว่าเรามีตัวแปรโกลบอลภายนอก
i และมีฟังก์ชัน
func ที่บวกค่าตัวแปรนี้
ทีละหนึ่ง:
i = 0
def func():
i += 1 # จะแสดงข้อผิดพลาด
return i
หลังจากรันโค้ดจะส่งคืนข้อผิดพลาด
เนื่องจากเกิดความขัดแย้งระหว่างตัวแปรโกลบอล
i ที่ประกาศไว้ในโค้ดภายนอก และ
ตัวแปรโลคัล i ที่กำลังถูกบวกด้วย
1 แต่ตัวแปรนั้นเองยังไม่ถูก
ประกาศ เพื่อแก้ไขปัญหา
นี้และกำหนดให้ฟังก์ชันทำงานกับ
ตัวแปรโกลบอลโดยตรง จำเป็นต้องใช้
คำสั่ง global คำสั่งนี้
เป็นคำประกาศที่
มีผลสำหรับบล็อกโค้ดปัจจุบันทั้งหมด
ที่กำหนดไว้
มาลองเขียนตัวอย่างก่อนหน้านี้ใหม่ โดยประกาศ
global ภายในฟังก์ชัน:
def func():
global i
i += 1
return i
print(func()) # จะแสดง 1
ในโค้ดต่อไปนี้ โปรแกรมเมอร์บางคน ทำผิดพลาด:
num = 4
def func():
num *= 2
return num
print(func())
มีอะไรผิดปกติกับโค้ดนี้? หาและแก้ไข ข้อผิดพลาดของผู้เขียนโค้ด
ในโค้ดต่อไปนี้ โปรแกรมเมอร์บางคน ทำผิดพลาด:
num = 10
def func():
num -= 3
return i
print(func())
มีอะไรผิดปกติกับโค้ดนี้? หาและแก้ไข ข้อผิดพลาดของผู้เขียนโค้ด