الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أسئله فى كتاب الأستاذ أحمد يوسف

بدأه mostafayasin في 11 يوليو 2014 · 5 رد · 789 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته .

 

لدى أسئله عديده فى كتاب الاستاذ أحمد حول أمور لم أفهمها وأمور أخرى لا تجرى فى البرنامج كما هى مشروحه و أمور أخرى .... 

 

سأسئل الأن فى الصفحه 58 :

 

الأمر متعلق بال Encapsulation فى برنامج ال class فى هذه الصفحه .. وهو أنه   قال أن الأسم ظهر على هيئة أرقام ولكن عندما جربة البرنامج عندى لم تظهر أى أرقام بل أنه اشتغل 10/10 .

 

وال get\set لم أفهم بالضبط مافائدتها كل ما فعلناه هو اننا اصبحنا نقوم باستدعاء البيانات بمسميات مختلفه فقط print ahmed.get_name() f بدلا من ahmed.name فكيف قامة هذه الطريقه بحفظ البيانات وحمايتها .

 

وسؤالى الأخير هو ما المشكله التى يمكن أن تحدث إذا كان الكود مكشوف ؟؟

 

شكرا لكم وأرجو الإفاده .

 

السلام عليكم

#2
اقتباس

 

سأسئل الأن فى الصفحه 58 :

 

الأمر متعلق بال Encapsulation فى برنامج ال class فى هذه الصفحه

 

لو أنك كتبت المثال بسؤالك

 

لكان أفضل بكثير

#3

تخيل إذا لديك class بيعبر عن كاتب Author 

ولديه حقل بيانات salary 

هل تفضل أن يكون التعامل مع هذه القيمة عبر 

salary= value

او 

set_salary(value)

الأفضل هو الثانية لأمكانية أن تتحكم وتتحقق من نوعية البيانات وفرض منطق برنامجك، فمثلا في الحالة الأولى لايوجد مايمنع أن تسند قيمة المرتب إلى القيمة صفر أو قيمة سالب

ولكن في برنامجك تعلم جيدا أن يجب ألا يقل المرتب عن حد معين فيجب أختبار هذه القيم قبل إسنادها لمتغيرات الكائن -هذا مايحدث مع البيانات المكشوفة-

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#4

أسف لتأخرى ...

 

شكرا لك استاذ أحمد .... كيف الطريقه الثانيه تمنع أن أسند القيم إلى صفر أو سالب !!! ... ولكن تقريبا كل الفرق هو طريقة المناداه على البيانات ؟؟؟؟ 

 

هل لديك مثال أخر للتوضيح :) ؟

#5

الكلاس تكتبها أنت , وتستخدمها في موديولز أخري عن طريق انشاء كائنات منها , كذلك قد يستخدمها غيرك  , في مثال المرتب 

هل تفضل أن يكون كالتالي 

class Employee:
    self.salary = None
    .
    .


وتستخدمها هكذا

ahmed = Employee()
ahmed.salary = -500

أم  

class Employee:
    self.salary = None
    .
    .
    def set_salary(self, newSalary)
        if not newSalary<0:
            self.salary = newSalary

وتستخدمها هكذا

ahmed = Employee()
ahmed.set_salary (-500)

تم تعديل هذه المشاركة بواسطة a.atalla في 16 يوليو 2014 في 03:33

#6

ممممم اتضح الأمر إلى حدد ما .. شكرا a.atalla على المساعده ... وشكرا لك جميعا :)

مواضيع مشابهة