ماهو المتغير self في بايثون ومتى استخدمه؟
ماهو المتغير self
self ليس متغير,
للمتغيرات إستعمال واحد و وحيد و هو تحزين قيم معينة
x=12
هنا x متغير يحمل القيمة 12
لا يمكن للمتغيرات أن تحمل أسماء الأسماء المحجوزة مثل print while for ....ect
بينما self كلمة محجوزة, تستخدم في البرمجة الكائنية الموجهة,
و لتعرف استعمال self في البرمجة الكائنية الموجهة
إليك هذا الرابط: when do use 'self
self ليست كلمة محجوزة في بايثون، بل فقط اسم يطلق غالباً على للمعامل الأول الذي يمرر للوظيفة، يمكن تسميته أي اسم، مثلاً this:
class Klass: def method(this): print(this.name)
وسيعمل عادي:
>>> o = Klass() >>> o.name = 'Mr.B' >>> >>> o.method() Mr.B >>>
إلا أن self الإسم الشائع. وظيفتها أنها تشير للكائن نفسه، في المثال أنشأنا كائن o، في كل مره تستدعي method فإن بايثون ستمرر o ضمنياً في أول معامل.
تم تعديل هذه المشاركة بواسطة Mr.B في 22 مايو 2014 في 19:54
self ليست كلمة محجوزة لكنه مثل ال methode و class ليست كلمات محجوزة للغة
لكن لها دلالاتها بالنسبة كالكلمات المحجوزة
لقد وصفتها بأتها كلمة محجوزة حتي أبسط الفهم فقط
الآن فهمت شكرا لكم :)
Mr.B كتب:self ليست كلمة محجوزة في بايثون، بل فقط اسم يطلق غالباً على للمعامل الأول الذي يمرر للوظيفة، يمكن تسميته أي اسم، مثلاً this:
class Klass: def method(this): print(this.name)وسيعمل عادي:
>>> o = Klass() >>> o.name = 'Mr.B' >>> >>> o.method() Mr.B >>>إلا أن self الإسم الشائع. وظيفتها أنها تشير للكائن نفسه، في المثال أنشأنا كائن o، في كل مره تستدعي method فإن بايثون ستمرر o ضمنياً في أول معامل.
هل this في الجافا لها نفس عمل self في البايثون أي نفس المهمة
this في جافا هي self في بايثون
عندما تنفذ كود مثل
ahmed=Human('ahmed', 25)ahmed.say_hi()فيحدث تحويل للكود إلى
Human.say_hi(ahmed, ....)
وعليه فأول معامل يشير للكائن الحالي
(map share people)
فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader