Në C, kthimi i vlerave të shumëfishta të kthimit nga një funksion është mjaft i lodhshëm, por në Python, është shumë e lehtë për t’u bërë.
Kthimi i ndarë me presje
Në Python, thjesht mund të ktheni një listë të vargjeve ose numrave të ndarë me presje.
Si shembull, përcaktoni një funksion që kthen vetëm një varg dhe një numër siç tregohet më poshtë, me secilin të ndarë me presje pas kthimit.
def test(): return 'abc', 100
Në Python, vlerat e ndara me presje konsiderohen tuple pa kllapa, përveç rasteve kur është e nevojshme sintaksisht. Prandaj, funksioni në shembullin e mësipërm do të kthejë një tufë me secilën vlerë si element.
Është presja që krijon tufën, jo kllapat e rrumbullakëta. Kllapat e rrumbullakëta mund të hiqen, përveç rastit të tupave bosh ose kur është e nevojshme për të shmangur paqartësitë sintaksore.
Built-in Types — Python 3.10.0 Documentation
Lloji i vlerës së kthyer është një tufish.
result = test() print(result) print(type(result)) # ('abc', 100) # <class 'tuple'>
Çdo element do të jetë i tipit të përcaktuar nga funksioni.
print(result[0]) print(type(result[0])) # abc # <class 'str'> print(result[1]) print(type(result[1])) # 100 # <class 'int'>
Gabim nëse specifikoni një indeks që tejkalon numrin e vlerave të kthyera që keni përcaktuar.
# print(result[2]) # IndexError: tuple index out of range
Mund të zbërthehet dhe vlera të shumta kthyese mund t’u caktohen variablave të veçantë.
a, b = test() print(a) # abc print(b) # 100
E njëjta gjë vlen nëse dëshironi të specifikoni tre ose më shumë vlera të kthimit në vend të vetëm dy.
def test2(): return 'abc', 100, [0, 1, 2] a, b, c = test2() print(a) # abc print(b) # 100 print(c) # [0, 1, 2]
Kthen një listë.
[]
Nëse e mbyllni me këtë, vlera e kthimit do të jetë një listë në vend të një tupleje.
def test_list(): return ['abc', 100] result = test_list() print(result) print(type(result)) # ['abc', 100] # <class 'list'>