Nội dung khóa học
Giới thiệu
4 bài học
Các kiểu dữ liệu và biến
5 bài học
Lệnh điều kiện
2 bài học
Lập trình hàm
3 bài học
Vòng lặp
0 bài học
Cấu trúc dữ liệu trong Python
0 bài học
Các thư viện trong Python
0 bài học
Function scope (phạm vi của hàm)
Khoá học: Lập trình Python cơ bản
- Nội dung
- Ghi chú
- Khoá học
Trong bài giảng này, chúng ta sẽ tìm hiểu về scope (phạm vi) của các biến trong Python và cách nó ảnh hưởng đến cách mà chúng ta sử dụng các biến trong các hàm.
Scope là gì?
Scope đề cập đến phạm vi của một biến trong chương trình Python, tức là vị trí mà biến có thể được truy cập và sử dụng. Scope của một biến được xác định bởi cách mà biến được định nghĩa trong chương trình.
Phạm vi cục bộ (Local Scope)
Mỗi hàm trong Python có một local scope của riêng nó, tức là các biến được định nghĩa trong hàm đó chỉ có thể được truy cập từ bên trong hàm đó. Ví dụ:
def my_func():
x = 10
print(x)
my_func() # output: 10
print(x) # NameError: name 'x' is not defined
Trong ví dụ này, biến x
chỉ có thể được truy cập từ bên trong hàm my_func()
. Nếu bạn cố gắng truy cập x
từ bên ngoài hàm, Python sẽ hiển thị một `.
Phạm vi toàn cục (Global Scope)
Nếu bạn định nghĩa một biến bên ngoài bất kỳ hàm nào, biến đó sẽ có global scope và có thể được truy cập từ bất kỳ hàm nào trong chương trình. Ví dụ:
x = 10
def my_func():
print(x)
my_func() # output: 10
print(x) # output: 10
Trong ví dụ này, biến x
được định nghĩa bên ngoài hàm và có global scope, do đó nó có thể được truy cập từ cả trong và ngoài hàm my_func()
.
Phạm vi lồng (Nested Scope)
Nếu bạn định nghĩa một hàm bên trong một hàm khác, hàm bên trong đó sẽ có thể truy cập tới các biến trong local scope của hàm bên ngoài. Ví dụ:
def outer():
x = 10
def inner():
print(x)
inner() # output: 10
outer()
Trong ví dụ này, hàm inner()
được định nghĩa bên trong hàm outer()
và có thể truy cập biến x
trong local scope của hàm outer()
.
Phạm vi không cục bộ (Nonlocal Scope)
Trong trường hợp một biến được định nghĩa trong một hàm nội bộ và được sử dụng trong một hàm con của hàm đó, nhưng không được truy cập trực tiếp trong hàm con, chúng ta có thể sử dụng nonlocal scope. Nonlocal scope cho phép chúng ta truy cập và thay đổi giá trị của biến trong local scope của hàm bên ngoài. Ví dụ:
def outer():
x = 10
def inner():
nonlocal x
x += 5
print(x)
inner() # output: 15
outer()
Trong ví dụ này, chúng ta sử dụng nonlocal scope để truy cập và thay đổi giá trị của biến x
trong local scope của hàm outer()
từ bên trong hàm inner()
.
Kết luận
Trong bài này, chúng ta đã tìm hiểu về các loại scope trong Python, bao gồm local scope, global scope, nested scope và nonlocal scope. Scope rất quan trọng trong việc sử dụng và quản lý các biến trong chương trình Python của chúng ta, do đó chúng ta cần hiểu rõ cách scope hoạt động để viết các chương trình hiệu quả hơn. Hy vọng bài giảng này đã giúp ích cho bạn trong việc nắm vững khái niệm về scope trong Python.