Oh Boy.
Có một số mã trên màn hình và nó trông rất khó hiểu.
Đây là một ví dụ về một hàm thực sự phức tạp, phức tạp mà bạn sẽ không bao giờ viết, nhưng nó sẽ
tốt cho mục đích tập luyện.
Và chúng tôi đang nói cụ thể về điều này ngay tại đây được gọi là Non Local.
Nó thực sự là một từ khóa mới trong Python 3.
Và như bạn có thể thấy, gợn sóng của tôi thậm chí còn không nhận ra điều đó.
Vì vậy, nó thậm chí không đánh dấu nó bằng màu xanh lam vì nó là một tính năng mới.
Nhưng tôi muốn nói chuyện với bạn về nó và cho bạn biết nó có tác dụng gì.
Từ khóa non local được sử dụng để chỉ phần này, địa phương chính này.
Đó là một cách để chúng ta nói, Này, tôi muốn sử dụng một biến không phải là biến toàn cục nhưng nằm
ngoài phạm vi chức năng của tôi.
Vì vậy, dựa trên định nghĩa đó, hãy thử tạm dừng video và xem chức năng này có thể làm gì.
Tôi sẽ chạy nó ngay bây giờ và sau đó xem qua mã.
Nếu tôi bấm Chạy.
Đây là những gì chúng tôi nhận được.
Vì vậy, chúng ta hãy nói về điều này.
Chúng ta có một hàm bên ngoài và sau đó chúng ta gọi hàm bên ngoài.
Vì vậy, trình thông dịch Python sẽ đi và nói, Được rồi, chúng ta có một biến X là cục
bộ cho hàm bên ngoài.
Và bên trong đây, chúng ta sẽ định nghĩa một hàm bên trong, một hàm khác.
Và ở đây, trước khi chúng ta gọi nó, chúng ta nhảy đến dòng thứ chín và nói, được rồi, hãy gọi hàm bên trong.
Chúng tôi quay lại và nói, Này, dòng năm, tôi muốn sử dụng X không cục bộ.
Điều đó nghĩa là gì?
Tôi muốn sử dụng biến x này vì nó không phải là cục bộ, tôi không muốn tạo một biến x
mới.
Tôi muốn tăng phạm vi lên phạm vi cha mẹ của tôi, cục bộ cha mẹ của tôi và lấy bất cứ thứ gì bạn tìm thấy trong đó.
Miễn là nó không phải là biến toàn cục, bất kỳ phụ huynh nào sẽ làm.
Tôi muốn lấy mà không phải là địa phương.
Vì vậy, bây giờ x này đang đề cập đến hàm bên ngoài ở đây.
Vì vậy, khi chúng ta nói x bằng không cục bộ, chúng ta đang gán chuỗi mới này.
Và thay thế cục bộ này để khi chúng ta in liên x, chúng ta nhận được không cục bộ, nhưng cũng như khi chúng
ta in x bên ngoài, chúng ta đã sửa đổi phạm vi bên ngoài này bằng từ khóa không cục bộ, do đó cũng trở thành không cục
bộ.
Nếu tôi xóa dòng này và hãy bình luận về nó và tôi nhấp vào Chạy.
Bạn thấy sự khác biệt?
Bây giờ chúng ta có nội bộ không cục bộ, nhưng cục bộ bên ngoài không được sửa đổi vì đây là một
biến mới.
Một lần nữa, tôi cho rằng điều này thực sự làm cho mã của bạn phức tạp hơn mức cần thiết.
Vì vậy, có những trường hợp đặc biệt mà bạn có thể muốn sử dụng điều này, nhưng nếu bạn có thể cố gắng làm cho mã của mình có
thể dự đoán được, nơi bạn có thể tránh sử dụng những thứ như không cục bộ và toàn cầu.
Xin lưu ý bạn, chúng ở đó là có lý do vì chúng hữu ích trong một số tình huống.
Như đã nói, hãy ghi nhớ, hãy làm cho mã của bạn có thể dự đoán được, làm cho mã của bạn sạch sẽ và tôi sẽ gặp lại bạn
trong video tiếp theo.