في لغة C ، يعد إرجاع قيم إرجاع متعددة من دالة أمرًا شاقًا للغاية ، ولكن في Python ، من السهل جدًا القيام بذلك.
العودة مفصولة بفواصل
في Python ، يمكنك ببساطة إرجاع قائمة سلاسل مفصولة بفواصل أو أرقام.
كمثال ، حدد دالة تقوم فقط بإرجاع سلسلة ورقم كما هو موضح أدناه ، مع فصل كل منهما بفاصلة بعد الإرجاع.
def test(): return 'abc', 100
في Python ، تعتبر القيم المفصولة بفواصل مجموعات بدون أقواس ، باستثناء الحالات الضرورية من الناحية التركيبية. لذلك ، ستعيد الوظيفة في المثال أعلاه مجموعة مع كل قيمة كعنصر.
الفاصلة هي التي تُنشئ المجموعة ، وليس الأقواس المستديرة. يمكن حذف الأقواس المستديرة ، إلا في حالة الصفوف الفارغة أو عند الضرورة لتجنب الغموض النحوي.
Built-in Types — Python 3.10.0 Documentation
نوع القيمة المعادة هو tuple.
result = test() print(result) print(type(result)) # ('abc', 100) # <class 'tuple'>
سيكون كل عنصر من النوع المحدد بواسطة الوظيفة.
print(result[0]) print(type(result[0])) # abc # <class 'str'> print(result[1]) print(type(result[1])) # 100 # <class 'int'>
خطأ إذا قمت بتحديد فهرس يتجاوز عدد قيم الإرجاع التي حددتها.
# print(result[2]) # IndexError: tuple index out of range
يمكن تفريغها ويمكن تعيين قيم إرجاع متعددة لمتغيرات منفصلة.
a, b = test() print(a) # abc print(b) # 100
ينطبق الأمر نفسه إذا كنت تريد تحديد ثلاث قيم إرجاع أو أكثر بدلاً من قيمتين فقط.
def test2(): return 'abc', 100, [0, 1, 2] a, b, c = test2() print(a) # abc print(b) # 100 print(c) # [0, 1, 2]
يُرجع قائمة.
[]
إذا قمت بإرفاقه بهذا ، فستكون القيمة المعادة قائمة بدلاً من مجموعة.
def test_list(): return ['abc', 100] result = test_list() print(result) print(type(result)) # ['abc', 100] # <class 'list'>