شاركنا بعملوماتك
#عائله بايثون
مفهوم الكلاس
الكلاس عبارة عن حاوية تستطيع أن تضع بداخلها متغيرات, مصفوفات, دوال إلخ..
لتعريف كلاس جديد نكتب
, ثم نضع له إسم, ثم نضع نقطتين.
في المثال التالي قمنا بإنشاء كلاس إسمه
, وضعنا فيه متغير إسمه .
الكلاس عبارة عن حاوية تستطيع أن تضع بداخلها متغيرات, مصفوفات, دوال إلخ..
لتعريف كلاس جديد نكتب
في المثال التالي قمنا بإنشاء كلاس إسمه
, وضعنا فيه متغير إسمه .مثال
مفهوم الكائن
الكائن عبارة عن نسخة من الكلاس.
لإنشاء نسخة من كلاس معين, نقوم بتعريف متغير قيمته تساوي إسم الكلاس, ثم نضع قوسين.
في المثال التالي قمنا بإنشاء كلاس إسمه
, وضعنا فيه متغير إسمه ثم قمنا بإنشاء كائن من هذا الكلاس إسمه . .
الكائن عبارة عن نسخة من الكلاس.
لإنشاء نسخة من كلاس معين, نقوم بتعريف متغير قيمته تساوي إسم الكلاس, ثم نضع قوسين.
في المثال التالي قمنا بإنشاء كلاس إسمه
, وضعنا فيه متغير إسمه ثم قمنا بإنشاء كائن من هذا الكلاس إسمه . .مثال
سنحصل على النتيجة التالية عند التشغيل.
سنحصل على النتيجة التالية عند التشغيل.
مفهوم الخصائص
أي متغير تقوم بتعريفه بشكل مباشر في الكلاس يقال له خاصيّة (
).
السبب في ذلك أن كل نسخة تنشئها من الكلاس ستملك نسختها الخاصة من هذا المتغير.
في المثال التالي قمنا بإنشاء كلاس إسمه
, وضعنا فيه متغير إسمه .
ثم قمنا بإنشاء كائنين من هذا الكلاس إسمهما و .
أي متغير تقوم بتعريفه بشكل مباشر في الكلاس يقال له خاصيّة (
).السبب في ذلك أن كل نسخة تنشئها من الكلاس ستملك نسختها الخاصة من هذا المتغير.
في المثال التالي قمنا بإنشاء كلاس إسمه
, وضعنا فيه متغير إسمه .ثم قمنا بإنشاء كائنين من هذا الكلاس إسمهما و .
مثال
سنحصل على النتيجة التالية عند التشغيل.
نلاحظ أن كل كائن أنشأناه من الكلاس
يملك نسخة خاصة فيه من المتغير .
سنحصل على النتيجة التالية عند التشغيل.
نلاحظ أن كل كائن أنشأناه من الكلاس
يملك نسخة خاصة فيه من المتغير .الكلمة
عند تعريف دالة بداخل كلاس, بايثون تجبرك على وضع الكلمة
أو أي كلمة أخرى كأول باراميتر فيها و من ثم وضع العدد الذي تريده من الباراميترات.
إذاً, حتى لو لم تكن تنوي أن تضع في الدالة أي باراميتر, فإنك مجبر على وضع الكلمة أو أي كلمة آخرى كباراميتر فيها.
عند تعريف دالة بداخل كلاس, بايثون تجبرك على وضع الكلمة
أو أي كلمة أخرى كأول باراميتر فيها و من ثم وضع العدد الذي تريده من الباراميترات.إذاً, حتى لو لم تكن تنوي أن تضع في الدالة أي باراميتر, فإنك مجبر على وضع الكلمة أو أي كلمة آخرى كباراميتر فيها.
نصيحة
بما أن أغلب المبرمجين يضعون كلمة
كأول باراميتر في الدالة فالأفضل أن تستخدم هذه الكلمة أيضاً حتى تكون تعمل بنفس الطريقة التي يعمل بها أغلب المبرمجين حول العالم.
بما أن أغلب المبرمجين يضعون كلمة
كأول باراميتر في الدالة فالأفضل أن تستخدم هذه الكلمة أيضاً حتى تكون تعمل بنفس الطريقة التي يعمل بها أغلب المبرمجين حول العالم.سبب وضع الكلمة
كأول باراميتر في الدالةوضع الكلمة
كأول باراميتر في الدالة يجعل مفسّر لغة بايثون قادر على الوصول إلى الخصائص الموجودة في نفس الكلاس. أي عند وضع هذه الكلمة كبارامتير في الدالة, تصبح هذه الكلمة بمثابة مؤشر للكلاس نفسه مما يجعلك قادر على الوصول إلى أي شيء تم تعريفه بداخل الكلاس عن طريقها.
في المثال التالي قمنا بإنشاء كلاس إسمه
, وضعنا فيه دالة إسمها فيها باراميترين فقط ( و ).
لاحظ أننا مجبرين على وضع الكلمة كأول باراميتر في الدالة حتى و لو لم نكن بحاجتها و عند إستدعاء الدالة لا نلقي لها بالاً.
وضع الكلمة
كأول باراميتر في الدالة يجعل مفسّر لغة بايثون قادر على الوصول إلى الخصائص الموجودة في نفس الكلاس. أي عند وضع هذه الكلمة كبارامتير في الدالة, تصبح هذه الكلمة بمثابة مؤشر للكلاس نفسه مما يجعلك قادر على الوصول إلى أي شيء تم تعريفه بداخل الكلاس عن طريقها.في المثال التالي قمنا بإنشاء كلاس إسمه
, وضعنا فيه دالة إسمها فيها باراميترين فقط ( و ).لاحظ أننا مجبرين على وضع الكلمة كأول باراميتر في الدالة حتى و لو لم نكن بحاجتها و عند إستدعاء الدالة لا نلقي لها بالاً.
المثال الأول
سنحصل على النتيجة التالية عند التشغيل.
في المثال التالي قمنا بإنشاء كلاس إسمه
يحتوي على دوال خاصة لطباعة راتب الموظف بدون إقتطاع الضرائب و بعد إقتطاع الضرائب.
الراتب سنخزنه في متغير إسمه .
الدالة التي تطبع الراتب كما هو قمنا بتسميتها .
الدالة التي تطبع الراتب بعد إقتطاع الضرائب قمنا بتسميتها .ملاحظة: عند استدعاء الدالة
نمرر لها رقم يمثل نسبة الضرائب بالمئة و على أساسها سيتم حساب و طباعة الراتب الصافي.
سنحصل على النتيجة التالية عند التشغيل.
في المثال التالي قمنا بإنشاء كلاس إسمه
يحتوي على دوال خاصة لطباعة راتب الموظف بدون إقتطاع الضرائب و بعد إقتطاع الضرائب.الراتب سنخزنه في متغير إسمه .
الدالة التي تطبع الراتب كما هو قمنا بتسميتها .
الدالة التي تطبع الراتب بعد إقتطاع الضرائب قمنا بتسميتها .
ملاحظة: عند استدعاء الدالة
نمرر لها رقم يمثل نسبة الضرائب بالمئة و على أساسها سيتم حساب و طباعة الراتب الصافي.المثال الثاني
سنحصل على النتيجة التالية عند التشغيل.
سنحصل على النتيجة التالية عند التشغيل.
الدالة
في البداية, كل كلاس موجود في بايثون أو تنشئه بنفسك, يملك مجموعة دوال جاهزة أهمها الدالة
.
هذه الدالة تمكن المبرمج من تمرير قيم لخصائص الكائن مباشرةً عند إنشائه.قبل قليل قلنا أنه عند إنشاء كائن من أي كلاس نكتب إسم الكلاس ثم نضع قوسين.
الآن عليك معرفة أنك تستطيع تمرير قيم للخصائص بشكل مباشر بين هذين القوسين بشرط أن تكون جهزت الكلاس لهذا الأمر.
في البداية, كل كلاس موجود في بايثون أو تنشئه بنفسك, يملك مجموعة دوال جاهزة أهمها الدالة
.هذه الدالة تمكن المبرمج من تمرير قيم لخصائص الكائن مباشرةً عند إنشائه.
قبل قليل قلنا أنه عند إنشاء كائن من أي كلاس نكتب إسم الكلاس ثم نضع قوسين.
الآن عليك معرفة أنك تستطيع تمرير قيم للخصائص بشكل مباشر بين هذين القوسين بشرط أن تكون جهزت الكلاس لهذا الأمر.
التعامل مع الدالة
في البداية عليك تعريف هذه الدالة تماماً مثل أي دالة تقوم بتعريفها.
بين أقواس الدالة يمكنك مباشرةً تمرير أسماء الخصائص التي تريد أن وضعها في الكلاس و تريد إعطاءها قيم أولية مباشرةً عند إنشاء كائنات من الكلاس.
في المثال التالي قمنا بإنشاء كلاس إسمه
, يحتوي على دالة إسمها فيها باراميترين فقط ( و بالتالي عند إنشاء كائن من هذا الكلاس, سصبح هذين الباراميترين عبارة عن خصائص لهذا الكائن. و ),
بعدها قمنا بتعريف دالة إسمها في الكلاس مهتمها عرض قيم هذين الباراميترين.
في البداية عليك تعريف هذه الدالة تماماً مثل أي دالة تقوم بتعريفها.
بين أقواس الدالة يمكنك مباشرةً تمرير أسماء الخصائص التي تريد أن وضعها في الكلاس و تريد إعطاءها قيم أولية مباشرةً عند إنشاء كائنات من الكلاس.
في المثال التالي قمنا بإنشاء كلاس إسمه
, يحتوي على دالة إسمها فيها باراميترين فقط ( و بالتالي عند إنشاء كائن من هذا الكلاس, سصبح هذين الباراميترين عبارة عن خصائص لهذا الكائن. و ),بعدها قمنا بتعريف دالة إسمها في الكلاس مهتمها عرض قيم هذين الباراميترين.
مثال
سنحصل على النتيجة التالية عند التشغيل.
سنحصل على النتيجة التالية عند التشغيل.
العلاقة بين الكلاس و الكائن
الفكرة الأساسية من الكلاس هي تجهيز الشكل العام لحفظ البيانات و توفير طرق سهلة الإستخدام للوصول إلى هذه البيانات و التعامل معها بسلاسلة.
إذاً الكلاس بطبيعته لا يحفظ أي معلومة, لهذا يقال له نسخة خام ( Blue Print ).
الفكرة الأساسية من الكائن هي إنشاء نسخة مطابقة من الكلاس و إدخال البيانات التي تريد فيها مع إحترام أي شروط موضعة في الكلاس الأساسي.
إذاً لا يمكن إنشاء كائن بدون كلاس لأن الكائن بطبيعته يمثل نسخ من كلاس محدد.
الفكرة الأساسية من الكلاس هي تجهيز الشكل العام لحفظ البيانات و توفير طرق سهلة الإستخدام للوصول إلى هذه البيانات و التعامل معها بسلاسلة.
إذاً الكلاس بطبيعته لا يحفظ أي معلومة, لهذا يقال له نسخة خام ( Blue Print ).
الفكرة الأساسية من الكائن هي إنشاء نسخة مطابقة من الكلاس و إدخال البيانات التي تريد فيها مع إحترام أي شروط موضعة في الكلاس الأساسي.
إذاً لا يمكن إنشاء كائن بدون كلاس لأن الكائن بطبيعته يمثل نسخ من كلاس محدد.
فائدة الكلاس
- الخصائص التي يجب أن يمتكلها كل كائن, يتم تعريفها مرة واحدة في الكلاس الأساسي و ليس لكل كائن على حدة.
- إذا أردت إضافة, حذف أو تعديل خصائص الكائنات, نعدّل في الكلاس الأساسي فقط لأن الكائنات هي نسخة مطابقة للكلاس.
- الكلاس يمكن وضعه في ملف خاص و هذا الأمر سيساعدك كثيراً في المستقبل عند ترتيب كود المشروع - الذي قد يتكون من عشرات الكلاسات - بطريقة سهلة المراجعة و التطوير.
- القدرة على تجميع الكائنات و تناقلها دفعة واحدة سواء لتخزينها في قاعدة بيانات أو لنقلها بين شاشة و أخرى الخ..
هذه الأشياء سنشرحها بتفصيل في مستوى متقدم.
الآن, إذا كنت تنوي إنشاء برنامج بسيط لحفظ معلومات عدد غير محدد من الأشخاص. و كل شخص عنده إسم, جنس, عمر و وظيفة. ماذا ستفعل؟!
بكل بساطة الحل هو أن تنشئ كلاس واحد فقط يمثل شخص, و تضع فيه الأشياء الأساسية التي تريدها أن تكون موجودة عند كل شخص. ثم تنشئ منه كائنات قدر ما شئت, و عندها يصبح كل كائن من هذا الكلاس عبارة عن شخص له معلوماته الخاصة كما في الصورة التالية.
كما تلاحظ قمنا بإنشاء كلاس يحتوي على المعلومات الأساسية التي نريد تعبئتها لكل شخص.
بعدها قمنا بإنشاء 4 كائنات ( أي 4 أشخاص ), ثم قمنا بإدخال معلومات خاصة لكل كائن فيهم.
الآن في حال قمت بإضافة أي متغير أو دالة جديدة في الكلاس
, فإن أي كائن من هذا الكلاس سيملك نسخة من الشيء الجديد الذي أضفته.
و في حال قمت بتعديل كود معين في الكلاس , فأيضاً سيتم تعديل هذا الكود عند جميع الكائنات من هذا الكلاس.
- الخصائص التي يجب أن يمتكلها كل كائن, يتم تعريفها مرة واحدة في الكلاس الأساسي و ليس لكل كائن على حدة.
- إذا أردت إضافة, حذف أو تعديل خصائص الكائنات, نعدّل في الكلاس الأساسي فقط لأن الكائنات هي نسخة مطابقة للكلاس.
- الكلاس يمكن وضعه في ملف خاص و هذا الأمر سيساعدك كثيراً في المستقبل عند ترتيب كود المشروع - الذي قد يتكون من عشرات الكلاسات - بطريقة سهلة المراجعة و التطوير.
- القدرة على تجميع الكائنات و تناقلها دفعة واحدة سواء لتخزينها في قاعدة بيانات أو لنقلها بين شاشة و أخرى الخ..
هذه الأشياء سنشرحها بتفصيل في مستوى متقدم.
الآن, إذا كنت تنوي إنشاء برنامج بسيط لحفظ معلومات عدد غير محدد من الأشخاص. و كل شخص عنده إسم, جنس, عمر و وظيفة. ماذا ستفعل؟!
بكل بساطة الحل هو أن تنشئ كلاس واحد فقط يمثل شخص, و تضع فيه الأشياء الأساسية التي تريدها أن تكون موجودة عند كل شخص. ثم تنشئ منه كائنات قدر ما شئت, و عندها يصبح كل كائن من هذا الكلاس عبارة عن شخص له معلوماته الخاصة كما في الصورة التالية.
كما تلاحظ قمنا بإنشاء كلاس يحتوي على المعلومات الأساسية التي نريد تعبئتها لكل شخص.
بعدها قمنا بإنشاء 4 كائنات ( أي 4 أشخاص ), ثم قمنا بإدخال معلومات خاصة لكل كائن فيهم.
الآن في حال قمت بإضافة أي متغير أو دالة جديدة في الكلاس
, فإن أي كائن من هذا الكلاس سيملك نسخة من الشيء الجديد الذي أضفته.و في حال قمت بتعديل كود معين في الكلاس , فأيضاً سيتم تعديل هذا الكود عند جميع الكائنات من هذا الكلاس.
مثال
الآن سنقوم بإنشاء الكلاس
و من ثم إنشاء 4 كائنات منه.
ملاحظة: سنقوم بوضع الكلاس في ملف ( أي موديول ) خاص و من ثم سنقوم بتضمينه في البرنامج من أجل ترتيب الكود فقط.
الآن سنقوم بإنشاء الكلاس
و من ثم إنشاء 4 كائنات منه.ملاحظة: سنقوم بوضع الكلاس في ملف ( أي موديول ) خاص و من ثم سنقوم بتضمينه في البرنامج من أجل ترتيب الكود فقط.
مثال
سنحصل على النتيجة التالية عند تشغيل الموديول
.
سنحصل على النتيجة التالية عند تشغيل الموديول
.
تعليقات
إرسال تعليق