⊗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 инструкциясын қолдану керек. Ол аталған айнымалы атауларын глобалдыны қоспағанда, ең жақын көрінетін аймақтан алады, яғни inner ішіндегі i осы функциядан жоғарыда жарияланған айнымалыдан алынады:

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
Біз сайттың жұмысы, аналитика және персонализация үшін cookie файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау