⊗pyPmFnIFN 22 of 129 menu

Sắc thái khi làm việc với hàm bên trong trong Python

Trong Python có thể không chỉ có các hàm lồng nhau, mà một hàm còn có thể trả về một hàm khác. Ví dụ, giả sử hàm outer trả về mã nguồn của hàm inner như kết quả:

def outer(): def inner(): return '+++' return inner

Hãy ghi lệnh gọi outer vào biến res:

res = outer() print(res)

Sau khi thực thi mã, một đối tượng chứa hàm sẽ được hiển thị:

<function outer.<locals>.inner at 0x000001564A212B90>

Nếu gọi biến res với dấu ngoặc tròn, thì thông báo '+++' sẽ được trả về:

print(res()) # sẽ in ra '+++'

Có thể viết lại mã sao cho vào res ghi outer với hai dấu ngoặc tròn - để gọi chính nó và hàm inner. Từ đó suy ra, có thể ghi thêm các dấu ngoặc tròn bên phải của hàm ngoài theo số lượng hàm được lồng vào nó:

res = outer()() print(res) # sẽ in ra '+++'

Cho đoạn mã sau:

def outer(): def inner(num): return num + 2 return inner res = outer()(3) print(res)

Hãy cho biết, điều gì sẽ được in ra console.

Cho đoạn mã sau:

def outer(): def inner(txt): return 'hello, ' + txt return inner res = outer() print(res)

Hãy cho biết, điều gì sẽ được in ra console.

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