⊗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हिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել