#Vi t b i Quantrimang.com ế ở
vidu()
Ch y code trên ta s có đ u ra:ạ ẽ ầ
4
Bi n c c bế ụ ộ
Trong code trên, chúng ta khai báo x là bi n toàn c c vàế ụ y là bi n c c b ế ụ ộ
trong vidu() và dùng toán t * đ thay đ i bi n toàn c c và in c giá tr c aử ể ổ ế ụ ả ị ủ
x và y. Sau khi g i hàmọ vidu() giá tr c a x s thành 4 vì đ c nhân đôi.ị ủ ẽ ượ
Ví d s d ng bi n toàn c c và c c b trùng tên:ụ ử ụ ế ụ ụ ộ
x = 5
def vidu():
x = 10
print("Bi n x c c b :"ế ụ ộ , x)
vidu()
print("Bi n x toàn c c:"ế ụ , x)
Sau khi ch y code trên ta có đ u ra:ạ ầ
Bi n x c c b : ế ụ ộ 10
Bi n x toàn c c: ế ụ 5
Trong code trên, chúng ta s d ng cùng tên x cho c bi n c c b và bi n ử ụ ả ế ụ ộ ế
toàn c c. Khi in cùng bi n x chúng ta nh n đ c hai k t qu khác nhau vì ụ ế ậ ượ ế ả
bi n đ c khai báo c hai ph m vi, c c b (bên trong hàmế ượ ở ả ạ ụ ộ vidu()) và toàn
c c (bên ngoài hàmụ vidu()).
Khi chúng ta in bi n trong hàmế vidu() nó s xu t raẽ ấ Bi n x c c b : 10ế ụ ộ , đây
đ c g i là ph m vi c c b c a bi n. T ng t khi ta in bi n bên ngoài ượ ọ ạ ụ ộ ủ ế ươ ự ế
hàm vidu() s cho raẽ Bi n x toàn c c: 5ế ụ , đây là ph m vi toàn c c c a bi n.ạ ụ ủ ế
Bi n nonlocal trong Pythonế
T nonlocal này mình không bi t d ch sang ti ng Vi t sao cho chu n. Trongừ ế ị ế ệ ẩ
Python, bi n nonlocal đ c s d ng trong hàm l ng nhau n i mà ph m vi ế ượ ử ụ ồ ơ ạ
c c b không đ c đ nh nghĩa. Nói d hi u thì bi n nonlocal không ph i ụ ộ ượ ị ễ ể ế ả
bi n local, không ph i bi n global, b n khai báo m t bi n là nonlocal khi ế ả ế ạ ộ ế
mu n s d ng nó ph m vi r ng h n local, nh ng ch a đ n m c global.ố ử ụ ở ạ ộ ơ ư ư ế ứ
Đ khai báo bi n nonlocal ta c n dùng đ n t khóa nonlocal.ể ế ầ ế ừ