أنواع البيانات التي تعلمناها سابقًا هي فئات، ويمكننا استخدام العديد من الأساليب في الفئات.
يستخدم تعريف الفئة الكلمة الأساسية للفئة ، وتكون بنية بناء الجملة كما يلي:
اسم الفئة: محتوى ''''مستند الفصل'''
الاسم هو اسم الفئة التي نريد إنشاءها، يرجى ملاحظة أننا نحاول استخدام الحروف الكبيرة عند استخدامها.
وثائق الفصل هي معلومات مكتوبة لنا لمساعدتنا في فهم هذا الفصل.
المحتوى هو نص الفصل في الفصل، بما في ذلك المتغيرات والأساليب والسمات وما إلى ذلك. إذا لم نكن بحاجة إلى إضافة محتوى مؤقتًا عند تعريف الفصل، فيمكننا استخدام بيان المرور ليكون بمثابة بيان العنصر النائب.
دعونا نحدد فئة:
classSchool: # بهذه الطريقة نحدد فصلًا باسم المدرسة ''''حدد فصلًا مدرسيًا'''passschool=School()#وبهذه الطريقة نسمي هذا الفصل print(type(school))#إخراج النجاح ألقِ نظرة على هذا الفصل نوع الطباعة (المدرسة)
الإخراج هو:
<class'__main__.School'><__main__.Schoolobjectat0x03372DD8>
من النتائج يمكننا أن نرى أن المدرسة عبارة عن فصل، ومن السطر الثاني يمكننا أن نرى أن المدرسة هي مثال لفصل المدرسة.
عند إنشاء فئة، غالبا ما يتم إنشاء طريقة __init__() هذه الطريقة هي طريقة بناء، أي أنه سيتم استخدام هذه الطريقة في كل مرة يتم فيها استدعاء الفئة، ويتم تمرير المعلمات أيضًا في هذه الطريقة.
يجب أن تحتوي هذه الطريقة على معلمة ذاتية، والتي يجب أن تكون أيضًا المعلمة الأولى. تشير هذه المعلمة إلى المثيل نفسه، ويمكنها الوصول إلى الخصائص والأساليب الموجودة في هذه الفئة.
انظر إلى المثال التالي:
classSchool: # بهذه الطريقة نحدد فصلًا إذا أردنا استدعاء هذا الفصل ''''حدد فصلًا مدرسيًا''' def__init__(self):print('هنا طريقة __init()__')def__judge__( self) :print('الحكم على ما إذا كان يتم استدعاء هذه الطريقة')school=School()
الإخراج هو:
إليك طريقة __init()__
من الإخراج، يمكننا أن نرى أنه طالما يتم استدعاء هذه الفئة، يتم استدعاء الأسلوب __init__ تلقائيًا، ولكن لا يتم استدعاء الأسلوب __judge__ التالي.
يمكننا أيضًا استخدام حلقة للتحقق مما إذا كان سيتم استخدام طريقة init في كل مرة يتم فيها استدعاء هذه الفئة:
انظر إلى الكود أدناه:
classSchool: '''تحديد فصل مدرسي'''count=0def__init__(self):School.count+=1print('هذا هو الاستخدام %d لطريقة __init()__'%School.count)foriinrange(5 ): مدرسة()
الإخراج هو:
هذا هو الاستخدام الأول للطريقة __init()__ هنا هو الاستخدام الثاني للطريقة __init()__ هنا هو الاستخدام الثالث للطريقة __init()__ الطريقة هنا هو الاستخدام الخامس للطريقة __init()__
يمكننا أن نرى من المخرجات أننا نستخدم طريقة init 5 مرات عندما نستدعي هذا الفصل لأول مرة، يكون العدد 0، ثم تتم إضافة طريقة init بمقدار 1. يتم زيادة عدد school.count في طريقة init. في كل مرة 1. ثم لا يتغير العدد الخارجي. من خلال هذا المثال، يمكننا أن نتعلم كيفية استخدام init.
عندما نتعلم الوظائف، يتم تعريف نقل المعلمات في اسم الوظيفة، وفي الفصل، يمكننا نقل المعلمات بسهولة أكبر من خلال طريقة init.
انظر إلى المثال التالي:
classGetAge:def__init__(self,name,age):self.name=nameself.age=ageprint('عمر %s هو %d'%(name,age))GetAge('شياو مينغ',18)
الإخراج هو:
عمر شياو مينغ هو 18 عامًا
يجب أن نلاحظ أن الذات ضرورية ويجب وضعها أولاً. ثم عندما نسمي هذه الفئة، يجب أن يكون عدد المعلمات (باستثناء الذات) الموجودة في طريقة init مساويًا للعدد الفعلي للمعلمات اجتاز.