პითონში ვიზუალური სფეროების მუშაობის ნიუანსები
განვიხილოთ ლოკალური და გლობალური ცვლადების მუშაობის მნიშვნელოვანი ნიუანსები.
დავუშვათ, გვაქვს გლობალური ცვლადი num.
შევქმნათ ფუნქცია func,
რომელიც გლობალურ num-ს
გამოიტანს კონსოლში:
num = 1
def func():
print(num)
func() # გამოიტანს 1-ს
ახლა კი print ფუნქციის ქვემოთ
მოდიფიცირებულ სტრიქონზე გამოვაცხადოთ ლოკალური num.
კოდის შესრულების შემდეგ კონსოლში შეცდომა გამოიყოფა.
ეს იმიტომ ხდება, რომ პითონი
ფუნქციის შიგნით num-ს
მხოლოდ ლოკალურ ცვლადად აღიქვამს, რომელიც
ჯერ არ არის გამოცხადებული:
num = 1
def func():
print(num) # გამოიტანს შეცდომას
num = 2
ახლა ჩავწეროთ ფუნქციის შიგნით არსებული კოდი ისე,
რომ num ცვლადის მნიშვნელობა
2-ით გაიზარდოს:
num = 1
def func():
num += 2 # გამოიტანს შეცდომას
შეცდომა იმითაა გამოწვეული, რომ გამოთქმა num += 2
შემდეგი ჩანაწერია:
num = num + 2
თუმცა, თავად ლოკალური ცვლადი, რომელსაც მიმატება ხდება, ჯერ არ არის გამოცხადებული. და შესაბამისად, პითონი გამოიტანს შეცდომას, რადგან არ შეიძლება რიცხვის დამატება არარსებულ მნიშვნელობას.
რა იქნება შემდეგი კოდის შესრულების შედეგი:
tst = '12'
def func():
tst = 12
return tst
print(tst)
რა იქნება შემდეგი კოდის შესრულების შედეგი:
tst = 'abc'
def func():
tst = tst.upper()
return tst
func()
print(tst)
რა იქნება შემდეგი კოდის შესრულების შედეგი:
tst = 'abc'
def func():
txt = tst.upper()
return txt
print(func())
print(tst)