⊗pyPmFnNl 21 of 129 menu

nonlocal ინსტრუქცია Python-ში

ხდება შემთხვევები, როდესაც გარე ფუნქციაში არსებობს ცვლადი, რომელზეც წვდომა საჭიროა შიდა ფუნქციაში. განვაცხადოთ ფუნქციაში outer ცვლადი i. შიდა ფუნქციის მიმართ ეს ცვლადი იქნება გარე (გლობალური ცვლადებია მხოლოდ ის ცვლადები, რომლებიც გამოცხადებულია მხოლოდ გარე კოდში). ხოლო ფუნქციას 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
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა