ინსტრუქცია global პითონში
დავუშვათ გვაქვს გარე გლობალური
ცვლადი i. ასევე არის ფუნქცია
func, რომელიც ამ ცვლადს
ემატება ერთეულს:
i = 0
def func():
i += 1 # გამოიტანს შეცდომას
return i
კოდის შესრულების შემდეგ დაიბრუნება შეცდომა,
რადგან ხდება გლობალური ცვლადის i,
რომელიც გამოცხადებულია გარე კოდში, და
ლოკალური ცვლადის i, რომელსაც ემატება
1, მაგრამ თავად ცვლადი ჯერ არ არის
გამოცხადებული. იმისთვის, რომ გამოვასწოროთ ეს
პრობლემა და მივანიჭოთ ფუნქციას მუშაობა ზუსტად
გლობალურ ცვლადთან, საჭიროა გამოვიყენოთ
ინსტრუქცია global. ეს ინსტრუქცია
არის გამოცხადება, რომელიც შესრულებულია
მთელი მიმდინარე კოდის ბლოკისთვის,
რომელშიც იგია განსაზღვრული.
მოდით გადავწეროთ წინა მაგალითი, გამოვაცხადოთ
ფუნქციის ტანში global:
def func():
global i
i += 1
return i
print(func()) # გამოიტანს 1
შემდეგ კოდში რაღაც პროგრამისტმა დაუშვა შეცდომა:
num = 4
def func():
num *= 2
return num
print(func())
რა არასწორია ამ კოდში? იპოვეთ და გამასწორეთ კოდის ავტორის შეცდომა.
შემდეგ კოდში რაღაც პროგრამისტმა დაუშვა შეცდომა:
num = 10
def func():
num -= 3
return i
print(func())
რა არასწორია ამ კოდში? იპოვეთ და გამასწორეთ კოდის ავტორის შეცდომა.