ما هي الذات في بايثون: أمثلة من العالم الحقيقي

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

عند كتابة الفصول في Python ، قد تصادف غالبًا المصطلح 'self.'إنه مفهوم مهم يجب على المبتدئين فهمه أثناء الغوص بشكل أعمق في الميزات الموجهة للكائنات في لغة برمجة Python.

تشير المعلمة selfإلى المثيل الحالي للفئة. يمكنك استخدامه للوصول إلى السمات والطرق التي تنتمي إلى تلك الفئة.

في هذا البرنامج التعليمي لبايثون ، سنستكشف كيف selfيلعب المتغير دورًا محوريًا في فئات بايثون. سنوضح لك أيضًا كيفية الحفاظ على وضوح الكود والنمطية وإعادة الاستخدام من خلال استخدام self.

جدول المحتويات

فهم الذات في بايثون

Python هي لغة برمجة كائنية (OOP) تعتمد بشكل كبير على الفئات والكائنات. لذلك ، قبل الغوص في selfالمعلمة ، يجب أن نفهم أولاً ماهية البرمجة الموجهة للكائنات.

البرمجة الشيئية في بايثون

ما هي الذات في بايثون: أمثلة من العالم الحقيقيالكتابة بالطباشير - OOP، Object Oriented Programming "data-medium-file =" https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-300x200.jpg "data- large-file = "https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" فك التشفير = "غير متزامن" تحميل = "كسول" src = "https: //blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg "alt =" ما هي الذات في بايثون. "class =" wp-image-206807 "width =" 709 "height =" 472 "srcset =" https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg 612w ، https://blog.enterprisedna.co /wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-300x200.jpg 300 واط ، https: //blog.enterprisedna.co / wp-content / uploads / 2023/04 / istockphoto-147480805-612x612-1-560x372.jpg 560w "sizes =" (max-width: 709px) 100vw، 709px ">

تساعد البرمجة الموجهة للكائنات المبرمجين على نمذجة مفاهيم العالم الواقعي والعلاقات من خلال استخدام الفئات والكائنات. ينتج عن هذا رمز أكثر تنظيماً وقابلية لإعادة الاستخدام وقابلية التوسع.

فكر في الفصل كقالب لإنشاء كائنات بخصائص وطرق محددة مسبقًا. أيضًا ، الكائن هو مثيل لفئة تخزن قيمها الخاصة للسمات ولها حق الوصول إلى وظائف الفئة.

هذان المفهومان هما لبنة بناء مهمة في العديد من تطبيقات بايثون . يمكنك رؤية كل من الفئات والكائنات أثناء العمل في هذا الفيديو حول كيفية إنشاء البيانات بسهولة باستخدام مكتبة Python Faker.

دور بايثون الذاتي

Self هو إشارة إلى مثيل الفئة في بايثون. يسمح لك بالوصول إلى سمات وطرق الفصل وتعديلها ضمن نطاقه الخاص.

فيما يلي بعض النقاط الأساسية حول استخدام self لغة بايثون:

  • Selfليست كلمة مفتاحية محجوزة في صيغة بايثون . يمكنك استخدام أسماء أخرى لتحديد مثيلات الفئة ولكنها selfأكثر الاصطلاح استخدامًا وقبولًا من قِبل مبرمجي Python.
  • Selfيستخدم كمعامل أول في طرق المثيل للإشارة إلى المثيل الحالي للفئة.
  • يمكنك استخدامها selfللتمييز بين سمات المثيل والمتغيرات المحلية ، مما يجعل شفرتك أكثر قابلية للقراءة وأقل أخطاءً في عربات التي تجرها الدواب.
  • عند استدعاء طريقة مثيل ، تقوم Python تلقائيًا بتمرير المثيل كمعامل أول.
  • يجب عليك التصريح عن selfالمعلمة في __init__() المنشئ وجميع منشئات الدوال اللاحقة الأخرى في الفصل الدراسي الخاص بك. سيؤدي عدم القيام بذلك إلى قيام برنامجك بإلقاء ملف typeerror.

    يمكنك مشاهدة مثال على هذا الخطأ أدناه:

class Person: def __init__(self): print('welcome') def show_person(): print('I love pandas.') a = Person() b = a.show_person() Traceback (most recent call last): File "person.py", line 10, in trill = b.show_person() ^^^^^^^^^^^^^^^^^^ TypeError: Person.show_person() takes 0 positional arguments but 1 was given

ملاحظة: يمكنك الالتفاف حول استخدام self المعلمة في الوظائف باستخدام ميزة الطريقة الثابتة التي يوفرها Python 3. سوف ندخل في مزيد من التفاصيل حول ذلك في قسم لاحق.

العمل مع الذات

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

تعلم كيفية الاستخدام self مهم جدًا لبناء الفصول في بايثون. خلال هذا القسم ، ستتعلم كيفية الاستخدام self في سيناريوهات مختلفة عند العمل مع الفئات والعناصر.

تهيئة الكائنات باستخدام "__init __ ()"

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

عند إنشاء مثيل جديد لفئة ، __init__() يتم استدعاء الطريقة لتهيئة سمات الكائن. الطريقة __init__() هي مُنشئ الفئة ، وهي تأخذ self المعلمة كوسيطة أولى لها.

يتم استخدام المعلمة selfداخل هذه الطريقة لربط سمات المثيل بالوسيطات المحددة.

هذا مثال:

class Person: def __init__(self, name, age): self.name = name self.age = age person1 = Person("Alice", 30)

في هذا المثال ، تأخذ الطريقة ، وكمعلمات أثناء تهيئة الكائن. تشير المعلمة إلى مثيل الفئة ، مما يسمح لك بتعيين السمات والسمات للكائن المحدد الذي يتم إنشاؤه. init selfnameageself nameage

استخدام الذات في الأساليب

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

دعنا نتوسع في المثال السابق:

class Person: def __init__(self, name, age): self.name = name self.age = age def introduce(self): print("Hello, my name is " + self.name + " and I'm " + str(self.age) + " years old.") person1 = Person("Alice", 30) person1.introduce()

في هذا المثال ، introduce()تتضمن الطريقة selfكمعاملها الأول. يمكّنك هذا من الوصول إلى اسم الكائن وسماته العمرية وإنشاء مقدمة مخصصة.

عند استدعاء الطريقة في التعليمات البرمجية الخاصة بك ، لا تحتاج إلى تمرير self المعلمة بشكل صريح. تعتني Python به تلقائيًا.

باتباع هذه الإرشادات وفهم الغرض من selfلغة بايثون ، يمكن للمبتدئين العمل بفعالية مع الفئات والعناصر. هذا يتيح لهم إنشاء كود جيد التنظيم يسهل قراءته والحفاظ عليه.

حالات الاستخدام الذاتي الشائعة

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

هناك العديد من الطرق التي يمكنك من خلالها استخدام الكلمة الأساسية في كود Python الخاص بك. من خلال فهم حالات الاستخدام هذه ، ستتمكن من استخدامها بفعالية في برامجك. self self

دعونا نلقي نظرة على بعضها:

الوصول إلى سمات الفئة

أحد الاستخدامات الأساسية لـ selfهو الوصول إلى سمات المثيل داخل فئة. سمات المثيل خاصة بكائن تم إنشاؤه من الفئة وتخزين بيانات الكائن.

يتيح لك استخدام selfمعالجة هذه السمات أو الوصول إليها داخل طرق الفئة. لنلقي نظرة على مثال:

class Dog: def __init__(self, name, age): self.name = name self.age = age def display_name(self): print("The dog's name is:", self.name)

في هذا المثال ، استخدمنا self للوصول إلى سمة الاسم للكائن Dog داخل display_name الطريقة.

استدعاء طرق الفصل

حالة الاستخدام الشائع الأخرى selfهي استدعاء طرق فئة أخرى من داخل طريقة مثيل. يتيح لك ذلك إعادة استخدام التعليمات البرمجية وتقليل التعقيد وتحسين إمكانية القراءة.

من الضروري استخدامه selfعند الإشارة إلى طرق أخرى ، لأنه يضمن استدعاء الطريقة الصحيحة للمثيل المحدد. خذ بعين الاعتبار المثال التالي:

class Bird: def __init__(self, species, color): self.species = species self.color = color def show_species(self): print("The bird species is:", self.species) def show_info(self): self.show_species() print("The bird color is:", self.color)

في المثال أعلاه ، نستخدم selfلاستدعاء show_speciesالطريقة من داخل show_infoالطريقة. وهذا يمكننا من عرض أنواع الطيور ولونها في مكالمة واحدة.

أخيرًا ، تذكر أن تستخدمها selfعند الوصول إلى سمات المثيل واستدعاء طرق الطبقة. بمجرد فهم حالات الاستخدام هذه ، ستتمكن من كتابة كود Python أكثر كفاءة وتنظيمًا.

أفضل الممارسات الذاتية

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

عند العمل مع self,هناك بعض الاصطلاحات التي تحتاج إلى اتباعها لتجنب المشاكل والأخطاء في التعليمات البرمجية الخاصة بك. هنا بعض منهم

أين تستخدم الذات

عند تحديد طرق المثيل ، استخدم دائمًا selfالمعامل كمعامل أول. يتيح لك ذلك الوصول إلى سمات مثيل الكائن وتعديلها واستدعاء طرق مثيل أخرى داخل الفئة.

من المهم استخدامها selfعند العمل مع مثيلات الكائن في Python. يضمن استخدامه سلوكًا متسقًا ويسمح بتغليف مناسب للكائن.

على سبيل المثال ، ضع في اعتبارك الفئة التالية:

class MyClass: def __init__(self, my_var): self.my_var = my_var

هنا ، يتم استخدام المعلمة الذاتية في الطريقة __init__ لتهيئة my_var سمة مثيل الكائن. بهذه الطريقة ، تصبح سمة خاصة بالمثيل. my_var

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

اصطلاحات تسمية للذات

بينما selfهو الاسم التقليدي المستخدم للمثيل في Python ، يمكنك تقنيًا استخدام أي اسم تريده. ومع ذلك ، يوصى بشدة بالالتزام باستخدام الذات من أجل الوضوح والاتساق مع مجتمع Python الأوسع.

قد يتسبب استخدام اسم مختلف في إرباك أولئك الذين يقرؤون التعليمات البرمجية الخاصة بك ويعملون بها ، خاصة إذا كانوا معتادين على اصطلاحات التسمية القياسية في مكتبات Python.

حيث لا تستخدم الذات

نحن نعلم بالفعل أن selfالمعلمة توفر الوصول إلى مثيل الكائن. ومع ذلك ، في بعض الحالات ، قد لا تتطلب بعض الوظائف في الفئة الوصول إلى مثيل الكائن.

في هذا السيناريو ، لا حاجة إلى المعلمة الذاتية. لذلك ، توفر Python ميزة طريقة ثابتة لتجاوز المعلمة الذاتية:

هذا مثال:

class Car: @staticmethod def print_car(): print('Vroom Vroom')

في المثال أعلاه ، @staticmethodيتجاوز مصمم الوظيفة selfمتطلبات المعلمة في الطريقة. بهذه الطريقة ، ستستمر الوظيفة في العمل حتى إذا لم يتم تمرير مثيل كائن إليها.

خاتمة

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

باختصار ، تشير المعلمة الذاتية في Python إلى مثيل فئة وتسمح لك بالوصول إلى سماتها وطرقها. بصفتك مطور لغة Python ، من المهم أن تفهم الغرض من الذات واستخدامها في الفئات والكائنات.

باستخدام الذات باستمرار في التعليمات البرمجية الخاصة بك ، فإنك تعزز قابلية القراءة وقابلية الصيانة ، مما يعزز الجودة الإجمالية لعملك.

تذكر أيضًا أنه على الرغم من أنك قد ترى المصطلح "self"مستخدمًا بشكل متكرر في Python ، إلا أنه ليس كلمة رئيسية محجوزة في Python. هذا يختلف عن لغات البرمجة مثل Javascript و Java ، حيث "this" توجد كلمة رئيسية محجوزة.

يمكنك تسمية المعلمة الأولى في طريقة الفصل ما تريد ؛ " self" هي الاتفاقية المفضلة فقط.

هل الذات كلمة رئيسية في بايثون؟ 

هناك سؤال يحوم دائمًا بين مبرمجي بايثون. هل الذات هي في الواقع كلمة رئيسية في بايثون؟ 

على عكس لغات البرمجة الأخرى مثل C++، حيث تعتبر self كلمة رئيسية، فهي في لغة Python تقليد يميل المبرمجون إلى اتباعه. إنها في الأساس معلمة في تعريف الطريقة. ومع ذلك، يمكنك استخدام أي اسم آخر بدلاً من الذات مثل آخر أو me  أو أي شيء آخر للمعلمة الأولى للطريقة. سبب آخر لاقتراحه من قبل معظم الناس هو أنه يعزز سهولة قراءة التعليمات البرمجية الخاصة بك. 

دعونا نرى مثالا لفهم ذلك: 

class myClass:   def show(other):   print("يتم استخدام آخر بدلاً من الذات")  

إذا قارنت هذا الكود مع كود المنشئ الذاتي لفئة Python، ستلاحظ أننا هنا استخدمنا اسمًا آخر في مكان الذات. الآن دعونا ننشئ كائنًا من هذه الفئة ونرى النتيجة: 

الكائن = myClass()   object.show()

يمكنك أن ترى أن البرنامج يعمل حتى لو استخدمنا اسمًا آخر بدلاً من المتغير self. إنه يعمل تمامًا بنفس الطريقة التي يعمل بها المتغير الذاتي. 


ما هي الذات في بايثون: أمثلة من العالم الحقيقي

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

كيفية حفظ وتحميل ملف RDS في R.

كيفية حفظ وتحميل ملف RDS في R.

ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.

تمت إعادة النظر في أول N أيام عمل - حل لغة ترميز DAX

تمت إعادة النظر في أول N أيام عمل - حل لغة ترميز DAX

في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.

اعرض الرؤى باستخدام تقنية المرئيات الديناميكية المتعددة الخيوط في LuckyTemplates

اعرض الرؤى باستخدام تقنية المرئيات الديناميكية المتعددة الخيوط في LuckyTemplates

سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.

مقدمة لتصفية السياق في LuckyTemplates

مقدمة لتصفية السياق في LuckyTemplates

في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.

أفضل النصائح في استخدام التطبيقات في خدمة LuckyTemplates عبر الإنترنت

أفضل النصائح في استخدام التطبيقات في خدمة LuckyTemplates عبر الإنترنت

أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.

تحليل تغييرات هامش الربح بمرور الوقت - التحليلات باستخدام LuckyTemplates و DAX

تحليل تغييرات هامش الربح بمرور الوقت - التحليلات باستخدام LuckyTemplates و DAX

تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.

أفكار التجسيد لذاكرة التخزين المؤقت للبيانات في DAX Studio

أفكار التجسيد لذاكرة التخزين المؤقت للبيانات في DAX Studio

سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX ​​في توفير النتائج.

إعداد تقارير الأعمال باستخدام LuckyTemplates

إعداد تقارير الأعمال باستخدام LuckyTemplates

إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.

ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته

ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته

ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته