Sobes.tech
Junior

Ключвое слово global дар Python барои чӣ истифода мешавад?

sobes.tech AI

Ҷавоб аз AI

Калидсўз global истифода мешавад барои тағир додани тағирёбандаи ки дар минтақаи глобалӣ қарор дорад, дар дохили минтақаи маҳаллӣ (масалан, дар дохили функсия). Бе global, вақте ки кӯшиш мекунем ба тағирёбандаи дар дохили функсия таъин кунем, як тағирёбандаи маҳаллӣ бо ҳамин ном эҷод мешавад ва тағирёбандаи глобалӣ тағир намеёбад.

x = 10  # Тағирёбандаи глобалӣ

def modify_local():
    x = 5  # Эҷоди тағирёбандаи маҳаллӣ
    print(f"Дар дохили функсия (маҳаллӣ): {x}")

def modify_global():
    global x  # Ифода кардани он ки мо мехоҳем бо тағирёбандаи глобалӣ кор кунем
    x = 5  # Тағйир додани тағирёбандаи глобалӣ
    print(f"Дар дохили функсия (глобалӣ): {x}")

print(f"Аввалин: {x}")
modify_local()
print(f"Пас аз modify_local: {x}") # Тағирёбандаи глобалӣ тағир наёфтааст
modify_global()
print(f"Пас аз modify_global: {x}") # Тағирёбандаи глобалӣ тағир ёфт

Калидсўзи global бояд бо эҳтиёт истифода шавад, зеро тағир додани тағирёбандаҳои глобалӣ аз функсияҳо метавонад ба хатоҳои дарёфт ва фаҳмидани коди мушкилӣ орад. Дар умум, беҳтар аст, ки тағирёбандаро ҳамчун аргумент ба функсияҳо гузаронед ва арзишҳои тағирёфтаи онҳоро баргардонед.