Ali Ahmed55 نشر 15 سبتمبر أرسل تقرير نشر 15 سبتمبر السلام عليكم ازي اطبق علي sigleton patterns بلغه باثيون ؟ 1 اقتباس
0 Chihab Hedidi نشر 15 سبتمبر أرسل تقرير نشر 15 سبتمبر يمكنك استخدام عدة طرق، و إحدى الطرق الشائعة هي استخدام ميثود __new__ لضمان أنه يتم إنشاء كائن واحد فقط من الفئة مهما تم استدعاؤها بهذا الشكل: class Singleton: _instance = None # متغير يخزن النسخة الوحيدة def __new__(cls): if cls._instance is None: cls._instance = super(Singleton, cls).__new__(cls) return cls._instance # اختبار Singleton singleton1 = Singleton() singleton2 = Singleton() # التحقق من أن الكائنين هما نفس النسخة print(singleton1 is singleton2) # ستطبع True هنا في الكود new هي ميثود خاصة يتم استدعاؤها قبل إنشاء الكائن، وتستخدم هنا لضمان أن النسخة الوحيدة من الفئة يتم إرجاعها كل مرة، أما cls._instance فهو متغير فئوي يخزن النسخة الوحيدة من الكائن، إذا كانت None، يتم إنشاء الكائن، وإلا يتم إرجاع النسخة الموجودة. بهذا الشكل، يتم التأكد من أن أي محاولة لإنشاء كائن جديد من الفئة ستعيد النسخة نفسها الموجودة بالفعل. 1 اقتباس
0 Ali Ahmed55 نشر 16 سبتمبر الكاتب أرسل تقرير نشر 16 سبتمبر بتاريخ 21 ساعة قال Chihab Hedidi: يمكنك استخدام عدة طرق، و إحدى الطرق الشائعة هي استخدام ميثود __new__ لضمان أنه يتم إنشاء كائن واحد فقط من الفئة مهما تم استدعاؤها بهذا الشكل: class Singleton: _instance = None # متغير يخزن النسخة الوحيدة def __new__(cls): if cls._instance is None: cls._instance = super(Singleton, cls).__new__(cls) return cls._instance # اختبار Singleton singleton1 = Singleton() singleton2 = Singleton() # التحقق من أن الكائنين هما نفس النسخة print(singleton1 is singleton2) # ستطبع True هنا في الكود new هي ميثود خاصة يتم استدعاؤها قبل إنشاء الكائن، وتستخدم هنا لضمان أن النسخة الوحيدة من الفئة يتم إرجاعها كل مرة، أما cls._instance فهو متغير فئوي يخزن النسخة الوحيدة من الكائن، إذا كانت None، يتم إنشاء الكائن، وإلا يتم إرجاع النسخة الموجودة. بهذا الشكل، يتم التأكد من أن أي محاولة لإنشاء كائن جديد من الفئة ستعيد النسخة نفسها الموجودة بالفعل. الف شكرااا لحضرتك جدا اقتباس
السؤال
Ali Ahmed55
السلام عليكم
ازي اطبق علي sigleton patterns بلغه باثيون ؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.