⊗pyPmFnNl 21 of 129 menu

Câu lệnh nonlocal trong Python

Có những trường hợp khi hàm ngoài có một biến cần truy cập từ hàm bên trong. Hãy khai báo trong hàm outer biến i. Đối với hàm bên trong, biến này sẽ là biến ngoài (biến toàn cục là những biến chỉ được khai báo trong mã bên ngoài). Và cho hàm inner chúng ta đặt phép cộng thêm một vào i:

def outer(): i = 0 def inner(): i += 1 # sẽ báo lỗi inner() return i

Tuy nhiên, đối với inner, biến i là biến cục bộ, Python coi nó chưa được khai báo và đưa ra lỗi tương ứng. Trước đây, lỗi tương tự được khắc phục bằng câu lệnh global. Tuy nhiên, ở đây i là biến ngoài, vì vậy nên sử dụng câu lệnh nonlocal. Nó lấy các tên biến được liệt kê từ phạm vi gần nhất, loại trừ phạm vi toàn cục, tức là i bên trong inner sẽ được lấy từ biến được khai báo ở trên hàm này:

def outer(): i = 0 def inner(): nonlocal i i += 1 inner() return i print(outer()) # sẽ in ra 1

Trong mã sau, một lập trình viên nào đó đã mắc lỗi:

num = 10 def outer(): num = 5 def inner(): num -= 2 inner() return num print(outer())

Có gì không ổn với mã này? Hãy tìm và sửa lỗi của tác giả mã.

Trong mã sau, một lập trình viên nào đó đã mắc lỗi:

num = 3 def outer(): num += 1 tst = num def inner(): tst = tst ** 3 inner() return tst print(outer())

Có gì không ổn với mã này? Hãy tìm và sửa lỗi của tác giả mã.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối