ตัวแปรคือชื่อ (identifiers) ที่แมปไปยังอ็อบเจ็กต์ namespace คือ dictionary ของชื่อตัวแปร (keys) และอ็อบเจ็กต์ที่สอดคล้อง (values)
คำสั่ง Python สามารถเข้าถึงตัวแปรใน local namespace และใน global namespace หากตัวแปร local และ global มีชื่อเดียวกัน ตัวแปร local จะบังตัวแปร global
แต่ละฟังก์ชันมี local namespace ของตัวเอง เมธอดคลาสปฏิบัติตามกฎ scoping เหมือนฟังก์ชันทั่วไป
Python ทำการเดากลับมาว่าตัวแปรเป็น local หรือ global มันสมมติว่าตัวแปรใดๆ ที่ถูกกำหนดค่าในฟังก์ชันเป็น local
ดังนั้น เพื่อกำหนดค่าให้ตัวแปร global ภายในฟังก์ชัน คุณต้องใช้คำสั่ง global ก่อน
คำสั่ง global VarName บอก Python ว่า VarName เป็นตัวแปร global Python หยุดค้นหา namespace local สำหรับตัวแปรนั้น
ตัวอย่างเช่น เรากำหนดตัวแปร Money ใน global namespace ภายในฟังก์ชัน Money เรากำหนดค่าให้ Money ดังนั้น Python สมมติว่า Money เป็นตัวแปร local อย่างไรก็ตาม เราเข้าถึงค่าของตัวแปร local Money ก่อนตั้งค่า ดังนั้น UnboundLocalError จะเป็นผลลัพธ์ การ uncomment คำสั่ง global จะแก้ปัญหาได้
#!/usr/bin/python
Money = 2000
def AddMoney():
# Uncomment the following line to fix the code:
# global Money
Money = Money + 1
print Money
AddMoney()
print Money