ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
عند كتابة الفصول في 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
للتمييز بين سمات المثيل والمتغيرات المحلية ، مما يجعل شفرتك أكثر قابلية للقراءة وأقل أخطاءً في عربات التي تجرها الدواب.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
self
name
age
self
name
age
استخدام الذات في الأساليب
عند تعريف عمليات المثيل في فئة ، يجب عليك تضمينها 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. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.
في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.
سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.
في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.
أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.
تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.
سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX في توفير النتائج.
إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.
ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته