Page 108 - Em Học Python
P. 108
BIẾN VÀ PHẠM VI
Một biến nằm bên trong hàm sẽ chỉ tồn tại bên trong hàm, hàm chạy xong là xong,
và sẽ không sử dụng được ở bên ngoài hàm. Trong thế giới lập trình cái này được gọi là
phạm vi ⟨scope⟩.
Thử xem xét hàm sau, không có tham số nhưng bên trong có sử dụng vài biến:
>>> def variable_test():
first_variable = 10
second_variable = 20
return first_variable * second_variable
Trong ví dụ này, ta tạo ra hàm variable_test ở ❶, trong đó nó nhân hai số
first_variable và second_variable vào với nhau rồi trả ra kết quả ở ❷.
>>> print(variable_test())
200
Nếu gọi hàm này bằng print, ta sẽ nhận được kết quả là 200. Nhưng nếu thử mở
biến first_variable (hoặc second_variable cũng được) bên ngoài khối lệnh của hàm
trên, ta sẽ gặp lỗi ngay:
>>> print(first_variable)
Traceback (most recent call last):
File "<pyshell#50>", line 1, in <module>
print(first_variable)
NameError: name 'first_variable' is not defined
Nếu một biến được tạo ra bên ngoài hàm, phạm vi của nó sẽ khác. Ví dụ thử tạo một
biến trước khi tạo hàm rồi dùng nó bên trong hàm xem:
>>> another_variable = 100
>>> def variable_test2():
first_variable = 10
second_variable = 20
return first_variable * second_variable * another_variable
82 Chương 7