Khai báo biến ở trong hàm

Một phần của tài liệu Phần 3 tự học ngôn ngữ lập trình python p3 (Trang 60 - 63)

 Thay đổi giá trị argument gián tiếp qua parameter

 Sử dụng lệnh global

 Giới thiệu hàm locals và globals

Khai báo biến ở trong hàm

Giả sử, bạn có một đoạn script như sau với việc khai báo một biến ngoài hàm và sử dụng ở trong hàm

kteam = 'How Kteam' def say_slogan():

print("We are", kteam) say_slogan()

Thử một trường hợp tiếp theo là khai báo biến ở trong hàm và sử dụng ở trong hàm

Kết quả cũng khơng có gì ngồi dự đốn

Giờ hãy thử khai báo một biến trong hàm mà sử dụng ngoài hàm xem nào

def make_slogan(): kteam = 'How Kteam' print(kteam)

Có ai đốn trật kết quả khơng nhỉ?

Cụ thể, Python nói với chúng ta rằng biến kteam chưa được khai báo. Nhưng rõ ràng là chúng ta đã khai báo nó ở trong hàm rồi mà?

À, là do chưa chạy hàm. Giờ ta sẽ thử lại. Lần này, ta để một dòng lệnh trong hàm luôn để chắc chắn rằng hàm đã chạy

def make_slogan(): kteam = 'How Kteam' print('Run successfully!') make_slogan()

print(kteam)

Vẫn lỗi tương tự mặc dù hàm đã chạy

Từ đó, chúng ta có thể kết luận rằng việc khai báo biến ở trong hàm là có vấn đề.

Và quả thực là như vậy. Việc bạn khai báo một biến ở một hàm nào đó thì biến đó chỉ có thể sử dụng trong hàm đó. Cịn nếu đi ra ngồi hàm khai báo nó thì biến đó hồn tồn vơ danh > thơng báo chưa được khởi tạo.

Hãy tưởng tự như thế này. Bạn sinh ra ở Việt Nam thế nên ở nước Việt Nam người ta có thể biết bạn là ai (có thể là qua CMND hoặc Căn Cước Công Dân). Nhưng nếu bạn đi qua Úc, Nhật hoặc thậm chí là Lào, Campuchia thì khơng ai biết được bạn là ai, tên gì cả.

Và như ví dụ trên. Bạn đã khai báo biến kteam trong hàm thơi thì chỉ trong hàm đó mới biết bạn. Cịn nếu quăng ra ngồi thì chương trình chẳng biết nó là thằng nào cả.

Một lần nữa lặp lại đó là biến khai báo ở hàm nào thì chỉ hàm đó mới biết biến đó cịn thốt ra ngồi hàm đó thì coi như khơng có. Biến khai báo ở hàm cha

có thể sử dụng trong hàm con nhưng biến ở hàm con không thể sử dụng ở hàm cha.

Giống như ví dụ mà bạn thấy, nếu bạn khai báo biến ở ngồi hàm thì bạn hồn tồn có thể sử dụng biến đó ở trong hàm.

Lưu ý: Biến là đối tượng nên bị ràng buộc bởi điều này. Do đó các

HÀM (FUNCTION), LỚP (CLASS) cũng chịu sự ràng buộc này tương tự. Khai báo ở hàm nào thì chỉ dùng ở hàm đó.

Một phần của tài liệu Phần 3 tự học ngôn ngữ lập trình python p3 (Trang 60 - 63)

Tải bản đầy đủ (PDF)

(108 trang)