• 0
mostafayasin

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

سؤال

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

 

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

 

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

 

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

 

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

 

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

 

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

 

السلام عليكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

5 إجابة على هذا السؤال .

  • 0

 

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

 

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

 

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

 

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

 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

salary= value 

او 

set_salary(value) 

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

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

 

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .