Hanan Fahad2 نشر 23 أغسطس 2023 أرسل تقرير مشاركة نشر 23 أغسطس 2023 (معدل) def __len__ ابغا افهم ليش تستخدم هذي ليش مانستخدم len ابغا افهم فكرتها دورت عنها ماحصلت تم التعديل في 23 أغسطس 2023 بواسطة سمير عبود تعديل العنوان اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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()` المعينة مسبقًا. اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Hanan Fahad2
def __len__
ابغا افهم ليش تستخدم هذي ليش مانستخدم
len
ابغا افهم فكرتها دورت عنها ماحصلت
تم التعديل في بواسطة سمير عبودتعديل العنوان
رابط هذا التعليق
شارك على الشبكات الإجتماعية
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.