صورة من موقع Unsplash . المؤلف: Vipul Jha
تعتبر Python ملائمة لأنها تتيح لك إمكانية إرجاع عدة قيم في وقت واحد من دالة في وقت واحد. للقيام بذلك ، تحتاج إلى استخدام عامل تشغيل
returnوإرجاع بنية بيانات مع عدة قيم - على سبيل المثال ، قائمة بإجمالي عدد ساعات العمل لكل أسبوع.
def hours_to_write(happy_hours):
week1 = happy_hours + 2
week2 = happy_hours + 4
week3 = happy_hours + 6
return [week1, week2, week3]
print(hours_to_write(4))
# [6, 8, 10]
تُستخدم هياكل البيانات في Python لتخزين مجموعات البيانات التي يمكن إرجاعها بواسطة عبارة
return. في هذه المقالة ، سننظر في طرق لإرجاع قيم متعددة باستخدام هياكل متشابهة (قواميس ، قوائم ، وصفوف) ، وكذلك استخدام الفئات وفئات البيانات (Python 3.7+).
الطريقة الأولى: إرجاع القيم باستخدام القواميس
تحتوي القواميس على مجموعات من العناصر ، وهي أزواج ذات قيمة مفتاح (
key:value) ، محاطة بأقواس معقوفة ( {}).
القواميس ، في رأيي ، هي أفضل خيار للوظيفة إذا كنت تعرف مفتاح الوصول إلى القيم. التالي هو قاموس حيث يكون المفتاح هو اسم الشخص والقيمة المقابلة هي العمر.
people={
'Robin': 24,
'Odin': 26,
'David': 25
}
الآن دعنا ننتقل إلى الوظيفة التي تُرجع قاموسًا بأزواج مفتاح القيمة.
# A Python program to return multiple values using dictionary
# This function returns a dictionary
def people_age():
d = dict();
d['Jack'] = 30
d['Kim'] = 28
d['Bob'] = 27
return d
d = people_age()
print(d)
# {'Bob': 27, 'Jack': 30, 'Kim': 28}
الطريقة الثانية: إرجاع القيم باستخدام القوائم
تشبه القوائم المصفوفات التي تم تكوينها باستخدام الأقواس المربعة ، ولكنها يمكن أن تحتوي على أنواع مختلفة من العناصر. تختلف القوائم أيضًا عن المجموعات لأنها أنواع بيانات قابلة للتغيير. أي أن أي قائمة يمكن أن تتغير .
القوائم هي واحدة من أكثر هياكل البيانات تنوعًا في Python لأنها لا يجب أن تكون موحدة (يمكن أن تتضمن سلاسل وأرقام وعناصر). في بعض الأحيان يتم استخدام القوائم بالاقتران مع المكدس أو قوائم الانتظار.
# A Python program to return multiple values using list
def test():
str1 = "Happy"
str2 = "Coding"
return [str1, str2];
list = test()
print(list)
# ['Happy', 'Coding']
هذا مثال يُرجع قائمة بأرقام طبيعية.
def natural_numbers(numbers = []):
for i in range(1, 16):
numbers.append(i)
return numbers
print(natural_numbers())
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
الطريقة الثالثة: إرجاع القيم باستخدام المجموعات
يتم ترتيب العناصر غير القابلة للتغيير في Python والتي تُستخدم عادة لتخزين مجموعات من البيانات غير المتجانسة.
تشبه Tuples القوائم ، ولكن لا يمكن تغييرها بعد الإعلان عنها. وكقاعدة عامة ، تكون المجموعات أسرع في العمل من القوائم. يمكنك إنشاء مجموعة من خلال فصل العناصر بفاصلات:
x, y, zأو (x, y, z).
في هذا المثال ، يتم استخدام tuple لتخزين البيانات حول الموظف (الاسم وخبرة العمل بالسنوات واسم الشركة).
Bob = ("Bob", 7, "Google")
وهذا مثال لكتابة دالة لإرجاع مجموعة.
# A Python program to return multiple values using tuple
# This function returns a tuple
def fun():
str1 = "Happy"
str2 = "Coding"
return str1, str2; # we could also write (str1, str2)
str1, str2= fun()
print(str1)
print(str2)
# Happy
Coding
لاحظ أننا حذفنا الأقواس في العبارة
return، لأنه يكفي ببساطة فصل كل عنصر بفاصلة لإرجاع tuple (كما هو موضح أعلاه).
لا تنس أنه يمكنك إنشاء مجموعة باستخدام فاصلة بدلاً من الأقواس. الأقواس مطلوبة فقط عند استخدام مجموعات فارغة أو عند الحاجة إلى تجنب عدم الدقة النحوية.
لفهم المجموعات بشكل أفضل ، راجع الوثائق الرسمية لـ Python 3 (الوثائق متوفرة باللغة الإنجليزية - Ed .. )
يوجد أدناه مثال لدالة تستخدم الأقواس لإرجاع tuple.
def student(name, class):
return (name, class)
print(student("Brayan", 10))
# ('Brayan', 10)
مرة أخرى ، من السهل الخلط بين tuple والقوائم (بعد كل شيء ، كلاهما عبارة عن حاوية للعناصر). ومع ذلك ، هناك اختلاف جوهري يجب مراعاته: لا يمكن تغيير المجموعات ، ولكن يمكن تغيير القوائم.
الطريقة الرابعة: إرجاع القيم باستخدام الكائنات
كل شيء هو نفسه هنا كما في C / C ++ أو Java. يمكنك ببساطة تكوين فئة (تسمى بنية في C) لتخزين سمات متعددة وإرجاع كائن فئة.
# A Python program to return multiple values using class
class Intro:
def __init__(self):
self.str1 = "hello"
self.str2 = "world"
# This function returns an object of Intro
def message():
return Intro()
x = message()
print(x.str1)
print(x.str2)
# hello
world
الطريقة الخامسة: إرجاع القيم باستخدام فئات البيانات (Python 3.7+)
تساعد فئات البيانات في Python 3.7+ في إرجاع فئة مع طرق فريدة مضافة تلقائيًا ووحدة نمطية
typingوأدوات مفيدة أخرى.
from dataclasses import dataclass
@dataclass
class Item_list:
name: str
perunit_cost: float
quantity_available: int = 0
def total_cost(self) -> float:
return self.perunit_cost * self.quantity_available
book = Item_list("better programming.", 50, 2)
x = book.total_cost()
print(x)
print(book)
# 100
Item_list(name='better programming.', perunit_cost=50,
quantity_available=2)
لفهم فئات البيانات بشكل أفضل ، راجع وثائق Python 3 الرسمية (الوثائق باللغة الإنجليزية - محرر ).
انتاج |
الغرض من هذه المقالة هو تعريفك بطرق إرجاع قيم متعددة من دالة في Python. وكما ترى ، هناك بالفعل العديد من هذه الطرق.
تعلم العتاد وطور مهاراتك في البرمجة باستمرار. شكرآ لك على أهتمامك!