Hanan Fahad2 نشر 23 أغسطس 2023 أرسل تقرير نشر 23 أغسطس 2023 (معدل) def __len__ ابغا افهم ليش تستخدم هذي ليش مانستخدم len ابغا افهم فكرتها دورت عنها ماحصلت تم التعديل في 23 أغسطس 2023 بواسطة سمير عبود تعديل العنوان اقتباس
0 سمير عبود نشر 23 أغسطس 2023 أرسل تقرير نشر 23 أغسطس 2023 الدالة len تستخدم التابع __len__ في حالة تواجده لإرجاع طول الكائن كما تم تعريفه في التابع: مثال: class Me: pass a = Me() print(len(a)) المثال السابق سيُعطي خطأ بالشكل التالي: TypeError: object of type 'Me' has no len() بمعنى الغرض من النوع Me لا يملك طول. يُمكننا أن نجعل للغرض طول عبر تعريف التابع __len__ في الكلاس و سيتم إستدعاؤه عند إستدعاء الدالة len: class Me: def __len__(self): return 5 a = Me() print(len(a)) # 5 مثلاً يُمكننا إنشاء كلاس Person و نجعل الدالة len عند إستعمالها مع كائنات هذا الصنف تُعيد عدد أحرف إسم الشخص بالشكل التالي: class Person: def __init__(self, name): self.name = name def __len__(self): return len(self.name) print(len(Person("Samir"))) # 5 print(len(Person("Hanan Fahad"))) # 11 print(len(Person("John Doe"))) # 8 و بطبيعة الحال إن لم يكن التابع __len__ مُعرف سيُعطي خطأ عند إستعمال الدالة len على هذه الكائنات. يُمكننا إستخدام التابع __len__ مُباشرة لكنه غير مريح للعين، بعكس الدالة len: fruits = ["apple", "banana", "cherry"] print(len(fruits)) # 3 print(fruits.__len__()) # 3 اقتباس
0 عبدالباسط ابراهيم نشر 24 أغسطس 2023 أرسل تقرير نشر 24 أغسطس 2023 دالة `__len__` تُستخدم في لغة Python لتعريف طريقة لاسترداد طول (عدد العناصر) لكائن معين من الصنف (class) عند استخدام دالة `len()`. عندما تستدعى دالة `len()` على كائن ما، فإن Python يحاول استدعاء دالة `__len__()` المعرفة داخل الكائن. وبالتالي، يمكنك تعريف دالة `__len__()` داخل صنفك الخاص لتحديد كيفية استرداد طول الكائن عند استخدام `len()`. على سبيل المثال، إذا كنت ترغب في تعريف صنف لقائمة مخصصة، يمكنك استخدام دالة `__len__()` لتحديد طول القائمة عند استخدام `len()`: class MyList: def __init__(self): self.items = [] def __len__(self): return len(self.items) my_list = MyList() my_list.items = [1, 2, 3, 4, 5] print(len(my_list)) # سيطبع: 5 في هذا المثال، تم تعريف دالة `__len__()` داخل صنف `MyList` لتسترد طول القائمة `items` عند استخدام `len(my_list)`. بالمقابل، دالة `len()` تستخدم لاسترداد طول الهيكل البيانات المدمجة في Python مثل القوائم والسلاسل والمجموعات والقواميس. ولكن عند استخدام `len()` مع صنف مخصص، فإن Python يحاول استدعاء دالة `__len__()` المعرفة داخل الكائن بدلاً من استخدام `len()` المعينة مسبقًا. اقتباس
السؤال
Hanan Fahad2
def __len__
ابغا افهم ليش تستخدم هذي ليش مانستخدم
len
ابغا افهم فكرتها دورت عنها ماحصلت
تم التعديل في بواسطة سمير عبودتعديل العنوان
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.