Lệnh global trong Python
Giả sử chúng ta có một biến toàn cục (global)
bên ngoài là i. Đồng thời có một hàm
func, hàm này cộng thêm một đơn vị vào
biến đó:
i = 0
def func():
i += 1 # sẽ báo lỗi
return i
Sau khi thực thi mã, sẽ trả về lỗi,
bởi vì xảy ra xung đột giữa biến i toàn cục,
được khai báo ở mã bên ngoài, và
biến i cục bộ, biến mà 1 được cộng vào,
nhưng bản thân biến đó chưa được
khai báo. Để sửa vấn đề này
và cho hàm làm việc chính xác với
biến toàn cục, cần sử dụng
lệnh global. Lệnh này
đại diện cho một khai báo
có hiệu lực cho toàn bộ khối mã hiện tại,
nơi nó được đặt.
Hãy viết lại ví dụ trước, khai báo
global trong thân hàm:
def func():
global i
i += 1
return i
print(func()) # sẽ in ra 1
Trong đoạn mã sau, một lập trình viên nào đó đã mắc lỗi:
num = 4
def func():
num *= 2
return num
print(func())
Có vấn đề gì với đoạn mã này? Hãy tìm và sửa lỗi của tác giả đoạn mã.
Trong đoạn mã sau, một lập trình viên nào đó đã mắc lỗi:
num = 10
def func():
num -= 3
return i
print(func())
Có vấn đề gì với đoạn mã này? Hãy tìm và sửa lỗi của tác giả đoạn mã.