⊗pyPmFnNl 21 of 129 menu

คำสั่ง nonlocal ใน Python

มีบางกรณีที่ในฟังก์ชันภายนอก มีตัวแปรที่จำเป็นต้องเข้าถึงได้ ในฟังก์ชันภายใน ลองประกาศ ตัวแปร i ในฟังก์ชัน outer ในส่วนของฟังก์ชันภายใน ตัวแปรนี้ จะเป็นตัวแปรภายนอก (ตัวแปรส่วนกลาง คือตัวแปรที่ประกาศไว้เฉพาะ ในโค้ดภายนอกเท่านั้น) และกำหนดให้ฟังก์ชัน inner เพิ่มค่า i ขึ้นหนึ่ง:

def outer(): i = 0 def inner(): i += 1 # จะแสดงผล [4, 9, 25] inner() return i

อย่างไรก็ตาม สำหรับ inner ตัวแปร i เป็นตัวแปรโลคัล Python ถือว่ามัน ไม่ได้ประกาศไว้และแสดงข้อผิดพลาด ที่เกี่ยวข้อง ก่อนหน้านี้ข้อผิดพลาดดังกล่าวได้รับการแก้ไข โดยใช้คำสั่ง global อย่างไรก็ตาม ที่นี่ i เป็นตัวแปรภายนอก ดังนั้นจึงควรใช้คำสั่ง nonlocal มันจะนำชื่อตัวแปรที่ระบุ ไปยังขอบเขตการมองเห็นที่ใกล้ที่สุด โดยไม่รวมขอบเขตส่วนกลาง นั่นคือ i ภายใน inner จะถูกนำมาจากตัวแปร ที่ประกาศไว้ก่อนหน้าฟังก์ชันนี้:

def outer(): i = 0 def inner(): nonlocal i i += 1 inner() return i print(outer()) # จะแสดงผล 1

ในโค้ดต่อไปนี้ โปรแกรมเมอร์บางคน ทำผิดพลาด:

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

มีอะไรผิดปกติกับโค้ดนี้? หาและแก้ไข ข้อผิดพลาดของผู้เขียนโค้ด

ในโค้ดต่อไปนี้ โปรแกรมเมอร์บางคน ทำผิดพลาด:

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

มีอะไรผิดปกติกับโค้ดนี้? หาและแก้ไข ข้อผิดพลาดของผู้เขียนโค้ด

ไทย
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ʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ