Bài 48. HÀM TRONG PYTHON P6 (BIẾN LOCALS VÀ GLOBALS)

I. Biến Locals Trong Hàm

Biến locals là biến được tạo ra bên trong 1 hàm. Nếu ta sử dụng biến đó bên ngoài hàm thì sẽ báo lỗi

Ví dụ 1:
Các câu lệnh:

# Khởi tạo 1 hàm
def calcul(a,b):
         x = a*b
         print(x)
#Truyền vào hàm các phần tử 6,9
calcul(6,9)
#In ra biến x
print(x)
 

Kết quả trả ra:
54
Traceback (most recent call last):
File “c:\Users\Admin\Desktop\Lam video\Chua bai\test_fix.py”, line 8, in <module>
print(x)
NameError: name ‘x’ is not defined

Đối với biến x bên trong hàm, khi ta sử dụng x bên ngoài hàm thì sẽ báo lỗi. Do biến locals chỉ có ý nghĩa bên trong hàm chứa nó.

II. Biến Globals Trong Hàm

Để khắc phục nhược điểm của biến Locals, Python cung cấp 1 công cụ là lệnh Global.
Cú pháp:
 global variable

Ví dụ 2 (sử dụng biến Global):
Các câu lệnh:

# Khởi tạo 1 hàm
def calcul(a,b):
         global x #Khởi tạo biến global
         x = a*b
         print(x)
#Truyền vào hàm các phần tử 6,9
calcul(6,9)
#In ra biến x
print(x)
 

Kết quả trả ra:
54
54

III. Hàm Locals và Hàm Globals

Hai hàm này sẽ trả ra tất cả các biến LocalsGlobals.
Kết quả trả ra của hai hàm này là một Dict. Với key là tên biếnvalue là giá trị của biến.

Ví dụ 3:
Các câu lệnh:

# Khởi tạo hàm 1
def calcul1(a,b):
         global x #Khởi tạo biến global
         x = a*b
         print(x)
#Truyền vào hàm 1 các phần tử 6,9
calcul1(6,9)
#Khởi tạo hàm 2
def calcul2(c,d):
         y = c+d
         print(y)
#Truyền vào hàm 2 các phần tử 9,6
calcul2(9,6)
#In ra các biến locals:
print(locals())
#In ra các biến globals:
print(globals())
 

Kết quả trả ra:
54
15
{‘__name__’: ‘__main__’, ‘__doc__’: None, ‘__package__’: None, ‘__loader__’: <_frozen_importlib_external.SourceFileLoader object at 0x000001F8401EA100>, ‘__spec__’: None, ‘__annotations__’: {}, ‘__builtins__’: <module ‘builtins’ (built-in)>, ‘__file__’: ‘c:\\Users\\Admin\\Desktop\\Lam video\\Chua bai\\test_fix.py’, ‘__cached__’: None, ‘calcul1’: <function calcul1 at 0x000001F84021DF70>, ‘x’: 54, ‘calcul2’: <function calcul2 at 0x000001F8402BCF70>}
{‘__name__’: ‘__main__’, ‘__doc__’: None, ‘__package__’: None, ‘__loader__’: <_frozen_importlib_external.SourceFileLoader object at 0x000001F8401EA100>, ‘__spec__’: None, ‘__annotations__’: {}, ‘__builtins__’: <module ‘builtins’ (built-in)>, ‘__file__’: ‘c:\\Users\\Admin\\Desktop\\Lam video\\Chua bai\\test_fix.py’, ‘__cached__’: None, ‘calcul1’: <function calcul1 at 0x000001F84021DF70>, ‘x’: 54, ‘calcul2’: <function calcul2 at 0x000001F8402BCF70>}

IV. Kết Luận

Như vậy, chúng tôi đã tiếp tục giới thiệu tới các bạn các khái niệm cơ bản của hàm (function) trong Python. Nếu có vấn đề nào chưa rõ, các bạn hãy liên hệ với chúng tôi để được giúp đỡ.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *