نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

class في JavaScript

التصريح عن الصنف (class declaration) يؤدي إلى إنشاء صنف جديد له اسمٌ معيّن يستخدم الوراثة عبر سلسلة prototype. يمكنك أيضًا تعريف الأصناف عبر تعابير تعريف الأصناف (class expression)، لكن التصريح عن الصنف بهذه الطريقة يختلف عن استخدام تعابير تعريف الأصناف في أنَّه لا يسمح بإعادة التصريح عن الصنف مرةً أخرى، وسيرمي (throw) خطأً إن حاولنا ذلك. البنية العامة class name [extends] { // محتويات الصنف } الوصف كما في تعابير تعريف الأصناف، ستُنفَّذ التعابر البرمجية الموجودة ضمن الصنف في نمط ...

الصنف Class في روبي

تُعدُّ الأصناف كائناتٍ من الدرجة الأولى (first-class objects) في روبي، وتعدُّ جميعها نُسخٌ من الصنف Class. عادةً، يمكن عادةً إنشاء صنف جديد بالشكل التالي: class Name # تكتب هنا الشيفرة التي تعرف سلوك الصنف end عندما يُنشَأ صنف جديد، يهيَّأ كائن من النوع Class ويسند إلى ثابت عام (global constant، هو Name في المثال السابق). عند استدعاء Name.new لإنشاء كائن جديد، يُنفَّذ التابع new الخاص بالصنف Class بشكل افتراضي. يمكن إثبات ذلك من خلال إعادة تعريف التابع new: class Class alias old_new ...

الأصناف الخاملة (Lazy Classes)

توصيف المشكلة وجود بعض الأصناف (classes) قليلة الاستخدام ولا أهمية لها في البرنامج، ويجدر التخلُّص منها إذ إنّ فهم وصيانة الأصناف يكلِّفان الوقت والجهد. أسبابها يكون تصميم الصنف بدايةً لأداء مهامٍ (functionality) معيّنة، ولكنّه قد يصبح صغيرًا لا أهميّة له من بعد الكثير من عمليات إعادة التصميم (refactoring). قد تُخصَّص بعض الأصناف لدعم التطوير المستقبلي للبرنامج (كالتخطيط المُسبق لميّزاتٍ ستُضاف لاحقًا)، وتصبح تلك الأصناف خاملةً عندما لا يحدث أيُّ تطويرٍ فيما بعد. وما الحل؟ تضمين الأصناف (inline classes) للعناصر (components) ...

أصناف البيانات (Data Classes)

توصيف المشكلة وجود العديد من أصناف البيانات في الشيفرة، والتي تُستخدَم لتخزين البيانات التي تحتاج إليها الأصناف الأخرى، إذ تحتوي على حقولٍ للبيانات (fields) وتوابع للوصول إليها (accessors) أي توابعَ للحصول على بيانات الحقول (getter) وأخرى لتعديلها (setter)، ولا تقوم هذه الأصناف بأيّ مهمّة أخرى ولا تستطيع كذلك تنفيذ العمليات (operations) على بياناتها بمفردها. أسبابها من الطبيعي أن يحتوي الصنف -بادئ الأمر- على القليل من الحقول العامّة (public fields) وبعض التوابع للوصول إليها (accessors) ولكن إن استمرَّ الصنف كذلك فلن ...

دمج الصنف (Inline Class)

المشكلة وجود صنفٍ (class) لا يقوم بأيّ مهمّة فعليّة ولا يُخطَّط لإضافة مهامٍ إليه لاحقًا. الحل نقل كافّة الميّزات (features) من هذا الصنف إلى صنفٍ آخر. مثال قبل إعادة التصميم يحتوي الصنف Person على حقلٍ واحدٍ باسم name وتابعٍٍ للحصول على رقم الهاتف getTelephoneNumber ولاشيء آخر، أمّا الصنف TelephoneNumber فهو يحتوي على حقلين باسم officeAreaCode و officeNumber بالإضافة إلى التابع السابق getTelephoneNumber، كما هو موضَّحٌ في مخطط الأصناف الآتي: الصنف Person يحتوي على حقلٍ واحدٍ باسم name وتابعٍٍ للحصول على ...

استخراج الصنف (Extract Class)

المشكلة وجود صنفٍ (class) واحدٍ يقوم بمهامٍ عديدةٍ يمكن توزيعها على صنفين. الحل إنشاء صنفٍ جديدٍ ونقل بعض الحقول (fields) والتوابع (methods) إليه، والتي تتعلَّق بالمهام الوظيفيّة (functionality) لهذا الصنف الجديد. مثال قبل إعادة التصميم يحتوي الصنف Person على عددٍ من الحقول كاسم الشخص (name) ورمز منطقة المكتب (officeAreaCode) ورقمه (officeNumber)، وتابعًا للحصول على هذا الرقم باسم getTelephoneNumber، كما في مخطط الأصناف الآتي: الصنف Person يحتوي على عددٍ من الحقول كاسم الشخص (name) ورمز منطقة المكتب (officeAreaCode) ورقمه (officeNumber)، وتابعًا ...

CSS/Topics/Pseudo Classes

الصنف التمثيل ‎:active العناصر (مثل الأزرار) التي جرى تفعيلها من المستخدم. وعند استخدام الفأرة سيبدأ «تفعيل» العنصر عندما يضغط المستخدم على الزر الرئيسي لها وينتهي عند إفلات الضغط على ذاك الزر. ‎:checked أزرار انتقاء (radio button) أو صناديق تأشير (checkbox) أو خيارات <option> في عنصر<select> تم تحديدها أو انتقاؤها. يمكن أن يُفعِّل المستخدم هذه الحالة بتفعيل أو انتقاء العنصر. ‎:default أي عنصر مُختار افتراضيًا بين مجموعة من العناصر المتعلقة به؛ ويمكن استخدام هذا الصنف الزائف على أيّة أزرار عادية <button> أو أزرار انتقاء (radio button) ...

الأصناف الواسعة (Large Classes)

توصيف المشكلة احتواء الصنف (class) العديدَ من الحقول (fields) والتوابع (methods) وشيفرةً بأسطرَ كثيرةٍ. أسبابها تبدأ الأصناف صغيرةً ليزداد حجمها مع استمرار تطوُّر البرنامج (كما الحال بالتوابع الطويلة) لأنَّ المبرمج يرى أنَّ إضافة ميِّزاتٍ (features) جديدةٍ في صنفٍ موجودٍ مسبقًا أكثر سهولةً من إنشاء أصنافٍ جديدةٍ مخصَّصةٍ لها. وما الحل؟ الحل بسيطٌ جدًا؛ وهو تقسيم الصنف، وذلك بإحدى الوسائل الآتية: إنشاء صنفٍ جديدٍ (Extract Class) إن كان من الممكن فصلُ بعض مهامّ الصنف الحاليّ ونقلها للصنف الجديد. إنشاء صنفٍ فرعيٍّ ...

محدد الأصناف ‎"‎.class"‎‎ في jQuery

محدد الأصناف الوصف يُستخدَم مُحدِّد الأصناف في تحديد كافّة العناصر التي تمتلك الصّنف المُعطَى. ‎jQuery( ".class" )‎ أضيفت في الإصدار: 1.0. class الصّنف المطلوب البحث عنه. يُمكِن للعنصر أن يمتلك عدّة أصناف، يجب أن يتطابق واحد منها فقط مع هذه القيمة. تستخدم jQuery لأجل مُحدِّدات الأصناف الدالة ‎getElementsByClassName()‎ الأصليّة في JavaScript إن كان المتصفّح يدعمها. أمثلة إيجاد العنصر الذي يمتلك الصّنف myClass: <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>class مثال عن المحدد</title> <style> div, span { ...

التابع new في الصنف Class في روبي

يستدعي التابع new التابعَ allocate لإنشاء كائن جديد من الصنف class، ثم يستدعي التابع initialize مع ذلك الكائن المنشأ ويُمرِّر إليه وسائط محددة. هذا هو التابع الذي يُستدعى كلما أريد إنشاء كائن باستخدام التابع ‎.new. البنية العامة new(args, ...) → obj المعاملات args الوسيط المراد تمريره إلى التابع initialize عند استدعائه. ... الوسائط الأخرى المراد تمريرها إلى التابع initialize عند استدعائه. القيم المعادة يعاد الكائن الذي أنشئ. انظر أيضًا التابع allocate: يحجز مساحةً من الذاكرة لكائن جديد من الصنف class ...

التابع superclass في الصنف Class في روبي

يعيد التابع superclass الصنف الأب (superclass) للصنف المستدعى معه. البنية العامة superclass → a_super_class or nil القيمة المعادة يعاد الصنف الأب للصنف المعطى أو القيمة nil إن لم يكن للصنف المعطى صنف أب. أمثلة مثال على استخدام التابع superclass: File.superclass #=> IO IO.superclass #=> Object Object.superclass #=> BasicObject class Foo; end class Bar < Foo; end Bar.superclass ...

التابع allocate في الصنف Class في روبي

يحجز التابع allocate مساحةً من الذاكرة لكائن جديد من الصنف class دون استدعاء التابع initialize مع النسخة (instance) الجديدة. يجب أن يكون الكائن المُعاد نسخةً من الصنف class. البنية العامة allocate() → obj القيم المعادة يعاد كائن من الصنف class. أمثلة مثال على استخدام التابع allocate: klass = Class.new do def initialize(*args) @initialized = true end def initialized? @initialized || false end end klass.allocate.initialized? #=> false انظر أيضًا التابع new: يُنشئ صنفًا جديدًا مجهولًا غير مسمى (unnamed) من ...

التابع inherited في الصنف Class في روبي

يُستدعَى التابع inherited كرد نداء في كل مرة يُنشأ فيها صنف فرعي (subclass) من الصنف الحالي. البنية العامة inherited(subclass) أمثلة مثال على استخدام التابع inherited: class Foo def self.inherited(subclass) puts "New subclass: #{subclass}" end end class Bar < Foo end class Baz < Bar end انظر أيضًا التابع new: يُنشئ صنفًا جديدًا مجهولًا غير مسمى (unnamed) من الصنف الأب (superclass) الممرر إليه (أو من الصنف Object إن لم يمرر إليه أي شيء). التابع allocate: يحجز مساحةً من الذاكرة لكائن جديد من الصنف class ...

التابع new في الصنف Class في روبي

يُنشئ التابع new صنفًا جديدًا مجهولًا غير مسمى (unnamed) من الصنف الأب ( superclass) المُمرَّر إليه (أو من الصنف Object إن لم يمرر إليه أي شيء). يمكن إعطاء صنف ما اسمًا عن طريق تعيين كائن الصنف (class object) وإعطائه قيمة ثابتة. إن أعطيت كتلة برمجية، فسيُمرَّر إليها كائن الصنف (class object)، وستقدَّر الكتلة في سياق ذلك الصنف كما هو الحال مع class_eval. عيِّن الصنف وأعطه قيمة ثابتة (يبدأ الاسم بأحرف كبيرة) إذا كنت تريد معاملته كصنف اعتيادي. البنية العامة new(super_class=Object) ...

الأصناف المُغلَقة (Sealed Classes) في لغة Kotlin

تُستخدَم الأصناف المُغلَقة لتمثيل الهرميّة (hierarchy) المحدودة للأصناف؛ وذلك عندما يكون نوع القيمة هو أحد الأنواع الموجودة في مجموعةٍ مُحدَّدةٍ (limited set) وليس أيّ نوع آخر، وبالتالي تُعدُّ هذه الأصناف إضافةً (extension) لأصناف الثوابت المُتعدَّدة (enum classes)، إذ إنّ مجموعة القيم لنوع enum محدودة أيضًا ولكل ثابت فيها نسخةٌ (instance) واحدةٌ فقط، بينما يمكن أن يكون للصنف الفرعيّ (subclass) من الصنف المغلق أكثر من نسخةٍ تحتوي على الحالة (case). ويُستخدَم المُحدِّد (modifier)‏ sealed قبل اسم الصنف للتصريح عن أنّه من ...

الأصناف (Classes) والوراثة (Inheritance) في لغة Kotlin

تُستخدم الكلمة المفتاحيّة class للتصريح (declaration) عن الصنف بالصيغة الآتية (اسم الصنف Invoice): class Invoice { } ويحتوي التصريح على اسم الصنف (class name) وترويسة الصنف (class header) (والتي تُحدِّد معاملات النوع والباني الأساسيّ ...إلخ.) وبُنية الصنف (class body) محاطةً بالقوسين {}، وإن كلًا من ترويسة الصنف وبُنيته اختياريتان؛ فإذا كان الصنف خاليًا لا حاجة للأقواس، مثل: class Empty الباني (Constructor) يوجد لكلّ صنف في لغة Kotlin بانٍ رئيسيّ (primary) واحدٌ وبانٍ -أو أكثر- ثانويّ (secondary)، إذ يُعدُّ الباني الرئيسيّ جزءًا من ...

أصناف البيانات (Data Classes) في لغة Kotlin

تُنشَأ بعض الأصناف بهدف تخزين البيانات فيها بشكلٍ أساسيّ، وبالتالي فإنّ كلّ ما تقوم به هذه الأصناف من وظائف يرتبط بالبيانات، وهذا ما يُسمى بأصناف البيانات في لغة Kotlin وتُعرَّف بالمُحدِّد data كما يلي: data class User(val name: String, val age: Int) قواعد عامّة يقوم المُترجِم في الأصناف من هذه النوع باشتقاق العناصر (deriving members) الآتية من كلِّ الخاصّيّات المُعرَّفة في الباني الأساسيّ (primary constructor): كلًا من equals()‎ و hashCode()‎ الدالة toString()‎ بشكلها ‎"User(name=John, age=42‎)‎"‎ الدوال بالصيغة componentN() functions بما ...

أصناف المكتبة غير الكافية (Incomplete Library Classes)

توصيف المشكلة لا تلبِّي أصناف المكتبة (library classes) كافّة احتياجات البرنامج مع استمرار تطوُّره، ولا يمكن تعديلها لأنّها مُخصَّصةٌ للقراءة فقط (read-only). أسبابها عدم تزويد مُطوِّر المكتبة كافَّةَ الميّزات (features) التي تحتاجها في البرنامج أو امتناعه عن تعريفَ استخدامها (implement). وما الحل؟ لتعريف بعض التوابع (methods) في المكتبة عليك بتعريف التوابع الدخيلة (introduce foreign methods). أمّا لإجراء تغييراتٍ واسعةٍ في صنف المكتبة فعليك بتعريف الإضافات المحليّة (introduce local extensions). إليك المزيد سيكون حلُّ المشكلة كفيلًا بالتقليل من تكرار الشيفرات (duplications)، ...

الدالة issubclass()‎ في بايثون

تعيد الدّالة issubclass()‎ قيمة منطقيّةً تُشير إلى ما إذا كان الصّنف المُعطى صنفًا فرعيًّا لصنف آخر أم لا. البنية العامة issubclass(class, classinfo) المعاملات class الصّنف المرغوب التّحقّق من كونه فرعًا من الصّنف classinfo . classinfo الصّنف أو النّوع المرغوب التّحقق من أنّ الصّنف class فرعٌ منه. يُمكن كذلك أن يكون صفًّا من الأصناف أو الأنواع للتحقّق من أنّ الكائن فرعٌ من أحدها. القيمة المعادة القيمة True إن كان الصّنفُ class صنفًا فرعيًّا من الصّنف classinfo (سواء كان مُباشرًا، غير مباشر، ...

أصناف الثوابت المُتعدِّدة (Enum Classes) في لغة Kotlin

يتلخَّصُ الاستخدام الرئيسيّ لأصناف الثوابت المتعدَّدة في قدرتها على تعريف الاستخدام (implementing) للثوابت المتعدًّدة الحافظة للنوع (type-safe)، ويُصرَّح عنها بالشكل: enum class Direction { NORTH, SOUTH, WEST, EAST } إذ يُعدُّ كلُّ ثابتٍ فيها كائنًا (object)، ويُفصل فيما بينها بالفاصلة , . التهيئة (Initialization) لمّا كان كلّ ثابتٍ في صنف الثوابت المتعدِّدة (enum) يُعدُّ كائنًا فيمكن إجراء التهيئة كما يلي: enum class Color(val rgb: Int) { RED(0xFF0000), ...

الدالة classmethod()‎ في بايثون

الدّالة classmethod()‎ مُزخرفٌ يُحوّل تابعًا عاديًّا في صنف ما إلى تابع صنف (class method) ليُمكن الوصول إلى الصّنف الذي عُرّف فيه التّابع. يستقبل تابع الصّنفِ الصّنفَ كمُعاملٍ أول، تمامًا كما يستقبل التّابع العاديّ النّسخة (instance) كمُعامل أولٍ (أي الكائن الذي نُشير إليه عادةً بالاسم self). البنية العامة class C: @classmethod def f(cls, arg1, arg2, ...): ... المعاملات لا توجد مُعاملات. لكنّ الدّالة المُزخرَفَة f تستقبل المُعامل cls الذي يُشير إلى الصّنف الذي عُرّف عليه ...

الدالة ascii()‎ في بايثون

تعيد الدّالة ascii()‎ تمثيلًا (representation) نصيًّا لكائن مُعيّنٍ يُمكن طباعته كما الحال مع الدّالة repr()‎، لكن مع تهريب (escape) المحارف التي لا تُعدّ محارفَ ASCII في السلسلة النّصيّة المعادة باستعمال التّهريبات ‎\‎U‎ أو ‎\‎u‎‎ أو ‎\‎x. وتُعيد هذه الدّالة سلسلةً نصيّةً مُشابهةً لتلك التي كانت تُعيدها الدّالة repr()‎ في بايثون 2. البنية العامة ascii(object) المعاملات object الكائن المُراد الحصول على تمثيلٍ نصيّ له. القيمة المعادة سلسلة نصيّة تمثّل الكائن. انظر المثال H]khi. أمثلة يوضّح المثال التّالي الفرق بين كلّ من ...

الوحدة enum في بايثون

enumeration هو مجموعة من الأسماء الرمزية (العناصر) المرتبطة بقيم ثابتة وفريدة. يمكن مقارنة عناصر enumeration عن طريق هويتها، ويمكن المرور على عناصر enumeration بواسطة حلقة تكرارية. وحدة enum تقدّم وحدة enum أربعة أصناف enumeration يمكن استخدامها لتعريف مجموعة فريدة من الأسماء والقيم، وهذه الأصناف هي: Enum و IntEnum و Flag و IntFlag. وإلى جانب ما سبق تقدّم الوحدة مزخرفًا واحدًا هو unique()‎، وصنفًا مساعدًا واحدًا هو auto. الصنف enum.Enum هو الصنف الأساسي والذي يستخدم لإنشاء ثوابت معدّدة enumerated constants. راجع ...

الأعداد الكسرية في بايثون

تتيح وحدة fractions التعامل مع الأعداد الكسرية وإجراء العمليات الحسابية المختلفة عليها. يمكن إنشاء نسخة من الكائن Fraction باستخدام زوج من الأعداد الصحيحة أو من عدد كسري آخر أو من سلسلة نصية. class fractions.Fraction(numerator=0, denominator=1) class fractions.Fraction(other_fraction) class fractions.Fraction(float) class fractions.Fraction(decimal) class fractions.Fraction(string) في السطر الأول من المثال السابق جرى استخدام زوج من الأعداد الصحيحة لإنشاء نسخة جديدة من الصنف Fraction. يجب أن يكون كلّ من البسط numerator والمقام denominator نسخًا من الصنف numbers.Rational ونحصل بذلك على نسخة جديدة من الصنف Fraction تحمل القيمة (البسط/المقام). ...

الأعداد الكسرية في بايثون

تتيح وحدة fractions التعامل مع الأعداد الكسرية وإجراء العمليات الحسابية المختلفة عليها. يمكن إنشاء نسخة من الكائن Fraction باستخدام زوج من الأعداد الصحيحة أو من عدد كسري آخر أو من سلسلة نصية. class fractions.Fraction(numerator=0, denominator=1) class fractions.Fraction(other_fraction) class fractions.Fraction(float) class fractions.Fraction(decimal) class fractions.Fraction(string) في السطر الأول من المثال السابق جرى استخدام زوج من الأعداد الصحيحة لإنشاء نسخة جديدة من الصنف Fraction. يجب أن يكون كلّ من البسط numerator والمقام denominator نسخًا من الصنف numbers.Rational ونحصل بذلك على نسخة جديدة من الصنف Fraction تحمل القيمة (البسط/المقام). ...

الدالة staticmethod()‎ في بايثون

تُحوّل الدّالة staticmethod()‎ تابعًا إلى تابعٍ ساكن (static method). البنية العامة staticmethod(fun) @staticmethod المعاملات fun الدّالة أو التّابع المُراد تحويله إلى تابعٍ ساكن. القيمة المعادة يُحوّل التّابع المُزخرَف إلى تابعٍ ساكن لا يستقبل مُعاملًا أولًا صريحًا (المُعامل المعروف بالاسم self في التّوابع). أمثلة المثال التّالي يوضّح كيفيّة إنشاء تابع ساكن باستعمال الدّالة staticmethod كمُزخرِف: >>> class A: ... @staticmethod ... def hello(): # لاحظ أنّ التّابع السّاكن لا يستقبل أيّ مُعامل تلقائيّ كما في التّوابع ...

تعريف الأصناف في بايثون

أبسط صيغة لتعريف الأصناف في بايثون هي: class ClassName:     <statement-1>     .     .     .     <statement-N> تعريف الأصناف كما هو الحال مع عبارات تعريف الدوال (عبارات def) يجب تنفيذ عبارات تعريف الأصناف حتى يكون لها الأثر المطلوب. يمكن تعريف الأصناف في بايثون ضمن عبارات if أو حتى داخل الدوال. عادة ما تستخدم الدوال داخل تعريف الصنف، ولكن من الممكن استخدام أنواع أخرى من العبارات، وتمتلك الدوال داخل الأصناف مجموعة من الوسائط الخاصّة بعملية استدعاء التوابع في بايثون. ...

تعريف الأصناف في بايثون

أبسط صيغة لتعريف الأصناف في بايثون هي: class ClassName:     <statement-1>     .     .     .     <statement-N> تعريف الأصناف كما هو الحال مع عبارات تعريف الدوال (عبارات def) يجب تنفيذ عبارات تعريف الأصناف حتى يكون لها الأثر المطلوب. يمكن تعريف الأصناف في بايثون ضمن عبارات if أو حتى داخل الدوال. عادة ما تستخدم الدوال داخل تعريف الصنف، ولكن من الممكن استخدام أنواع أخرى من العبارات، وتمتلك الدوال داخل الأصناف مجموعة من الوسائط الخاصّة بعملية استدعاء التوابع في بايثون. ...

المتغيرات الخاصة في بايثون

لا تدعم بايثون متغيرات الأصناف الخاصة (Private) والتي لا يمكن الوصول إليها من خارج الكائن، ولكن يتفق معظم المبرمجين على أنّ الاسم المسبوق بشرطة سفلية (مثل: ‎_spam) يجب أن يُعامل كجزء غير عام من الواجهة البرمجية (سواء كان ذلك الجزء دالة أم تابعًا أم خاصية).  هناك حالة واحدة تستدعي استخدام عناصر الأصناف الخاصة وهي تجنب حدوث تضارب بين الأسماء الموجودة في الصنف والأسماء المعرّفة في الأصناف الفرعية، ونظرًا لذلك تقدم اللغة دعمًا محدودًا لمثل هذه الحالة، وتدعى بتشويه الأسماء name ...

المتغيرات الخاصة في بايثون

لا تدعم بايثون متغيرات الأصناف الخاصة (Private) والتي لا يمكن الوصول إليها من خارج الكائن، ولكن يتفق معظم المبرمجين على أنّ الاسم المسبوق بشرطة سفلية (مثل: ‎_spam) يجب أن يُعامل كجزء غير عام من الواجهة البرمجية (سواء كان ذلك الجزء دالة أم تابعًا أم خاصية).  هناك حالة واحدة تستدعي استخدام عناصر الأصناف الخاصة وهي تجنب حدوث تضارب بين الأسماء الموجودة في الصنف والأسماء المعرّفة في الأصناف الفرعية، ونظرًا لذلك تقدم اللغة دعمًا محدودًا لمثل هذه الحالة، وتدعى بتشويه الأسماء name ...

الدالة weakref.WeakMethod()‎ في بايثون

صنف فرعي خاصّ من الصنف ref يحاكي إشارة ضعيفة إلى تابع مرتبط bound method (أي تابع معرف في صنف وجرى البحث عنه في نسخة من ذلك الصنف). ملاحظة: هذا الصنف جديد في الإصدار 3.4. البنية العامة class weakref.WeakMethod(method) المعاملات dict التابع المراد إنشاء محاكاة لإشارة ضعيفة إليه. التوابع المرتبطة سريعة الزوال ما يمنع من تمسّك الإشارات الضعيفة العادية بها. يمتلك الصنف WeakMethod طريقة خاصة لإعادة إنشاء التابع المرتبط والإبقاء عليه إلى أن يموت الكائن أو الدالة الأصلية: >>> class C: ... ...

الاستثناءات في بايثون

قد تكون التعابير البرمجية في الشيفرة صحيحة من ناحية الصيغة، لكن قد يؤدي تنفيذ تلك الشيفرة إلى التسبب في حدوث الأخطاء. تسمّى الأخطاء المُكتشفة أثناء تنفيذ الشيفرة بالاستثناءات (exceptions) وقد تتسبب في إيقاف عمل البرنامج (fatal) في بعض الأحيان. صيغة الاستثناءات تُنشئ الاستثناءات رسائل خطإٍ مماثلة لما يلي: >>> 10 * (1/0) Traceback (most recent call last):   File "<stdin>", line 1, in <module> ZeroDivisionError: division by zero >>> 4 + spam*3 Traceback (most recent call last):   File "<stdin>", line 1, in <module> NameError: name 'spam' ...

الدالة slice()‎ في بايثون

تعيد الدّالة slice()‎ كائن slice يُمثّل مجموعة فهارس (indices) تُحدّد من طرف الاستدعاء ‎range‎(‎start‎,‎ stop‎, ‎step‎)‎‎. البنية العامة class slice(stop) class slice(start, stop[, step]) المعاملات start مُعامل اختياريّ قيمته الافتراضيّة هي None، يُمثّل بداية الفهارس. stop المُعامل المطلوب الوحيد، والذي يُمثّل نقطة توقّف الفهارس. step مُعامل اختياريّ قيمته الافتراضيّة هي None، يُمثّل الخطوة التي بين كل فهرس وآخر. القيمة المعادة كائن slice‎ يحتوي على خصائص start، وstop، وstep قابلة للقراءة فقط، والتي تُعيد قيمة المُعامل المُرتبط بها. الكائن المُعاد لا يمتلك ...

الدالة isinstance()‎ في بايثون

تعيد الدّالة isinstance()‎ قيمة منطقيّةً تُشير إلى ما إذا كان الكائن المُعطى نسخة (instance) من الصّنف المُعطى أم لا. البنية العامة isinstance(object, classinfo) المعاملات object الكائن المرغوب التّحقّق من كونه نسخةً من الصّنف (أو النّوع) المُعطى. classinfo الصّنف أو النّوع المرغوب التّحقق من أنّ الكائن نسخة منه. يُمكن كذلك أن يقبل صفًّا (أو عدّة صفوف) من الأصناف أو الأنواع للتحقّق من أنّ الكائن نُسخة من أحدها. القيمة المعادة القيمة True إن كان الكائن نُسخة من الصّنف أو نسخة من أحد ...

عمليات المقارنة في بايثون

تقدّم بايثون ثمان عمليات للمقارنة، وتمتلك جميعها نفس الأولوية (وهي أعلى من العمليات المنطقية). يلخّص الجدول التالي عمليات المقارنة المتوفّرة في بايثون: العملية الوظيفة ‎<‎‎ أقل من ‎<=‎ أقل من أو يساوي ‎>‎ أكبر من ‎>=‎ أكبر من أو يساوي == المساواة ‎!=‎ عدم المساواة is هوية الكائن is not نفي هوية الكائن ملاحظات يمكن ربط عمليات المقارنة بعضها ببعض حسب الحاجة، فعلى سبيل المثال العبارة x < y <= z مكافئة للعبارة x < y and y <= z، ...

الدالة functools.total_ordering()‎ في بايثون

يقوم مُزخرف الأصناف functools.total_ordering()‎ بزخرفة صنف يُعرّف تابعًا أو عدّة توابع ترتيب مُقارنة غنيّة (rich comparison ordering methods)، ويقوم بإضافة بقيّة توابع المُقارنة. يُبسّط هذا الجهد المبذول في تحديد جميع عمليّات المُقارنة الغنيّة المُمكنة. يجب على الصّنف أن يُعرّف التّابع الخاصّ ‎__lt__()‎، أو ‎__le__()‎، أو ‎__gt__()‎، أو ‎__ge__()‎. إضافة إلى التّابع الخاصّ ‎__eq__()‎. البنية العامة @functools.total_ordering المعاملات لا توجد مُعاملات. أمثلة المثال التّالي يوضّح كيفيّة استعمال المُزخرف للمُقارنة بين سياراتٍ حسب سُرعتها، تابع حالة التّساوي يُشير إلى أنّ نُسخةً من ...

الدالة property()‎ في بايثون

تعيد الدّالة property()‎ خاصيّةً يُمكن التّحكم في تابع الحصول على قيمتها، وتابع تعيين قيمة لها، وتابع حذف قيمتها، وسلسلة التّوثيق (docstring) الخاصّة بها. ويُمكن كذلك استخدامها كمُزخرف لتحويل تابع إلى خاصيّة. البنية العامة property(fget=None, fset=None, fdel=None, doc=None) المعاملات fget الدالّة التّي ستُستخدم للحصول على قيمة الخاصيّة. fset الدالّة التّي ستُستخدم لتعيين قيمة للخاصيّة. fdel الدالّة التّي ستُستخدم لحذف قيمة الخاصيّة. doc سلسلة توثيق الخاصيّة. القيمة المعادة كائن خاصيّة (property object). الكائن المُعاد يحتوي على الخاصيّات fget، وfset، وfdel التي تُمثّل ...

الدالة type()‎ في بايثون

تعيد الدّالة type()‎ نوع الكائن المُعطى إن مُرّر مُعامل واحد لها. وتعيد كائن نوعٍ (type object) جديد إن مُرّرت لها ثلاثة مُعاملات. البنية العامة type(object) type(name, bases, dict) المعاملات تقبل الدّالة type()‎ إمّا مُعاملًا واحدًا فقط، أو ثلاثة مُعاملات كما هو واضح في البنية العامّة أعلاه. عند استدعائها بمُعامل واحد فقط، ستُعيد الدّالة نوع الكائن المُمرّر. أمّا عند الاستدعاء بثلاثة مُعاملات، فسيُعاد كائن نوعٍ جديد. وهو طريقة ديناميكيّة لإنشاء الأصناف كبديل للجملة class. object عند استدعائها بمُعامل واحد فقط، يُمثّل هذا ...

المكرِّرات Iterators في بايثون

لعلّك لاحظت أن بالإمكان المرور على عناصر معظم الكائنات الحاوية (container objects) (مثل القوائم والقواميس والسلاسل النصية وغيرها...) باستخدام عبارة for: for element in [1, 2, 3]:     print(element) for element in (1, 2, 3):     print(element) for key in {'one':1, 'two':2}:     print(key) for char in "123":     print(char) for line in open("myfile.txt"):     print(line, end='') تستدعي عبارة for خلف الكواليس الدالة iter()‎ على الكائن الحاوي، فتعيد الدالة كائن تكرار (iterator object) يعرّف التابع ‎__next__‎()‎ الذي يستطيع الوصول إلى عنصر واحد في الكائن الحاوي ...

الدالة weakref.WeakKeyDictionary()‎ في بايثون

صنف مجموعة Set class يحتفظ بالإشارات الضعيفة لعناصر المجموعة. سيجري تجاهل العنصر عند عدم وجود أي إشارة قوية إليه. البنية العامة weakref.WeakSet([elements]) المعاملات عناصر المجموعة المراد إنشاء إشارات ضعيفها إليها. مصادر صفحة Weak references في توثيق بايثون الرسمي.

وراثة الأصناف في بايثون

تدعم بايثون شأنها في ذلك شأن أي لغة برمجية كائنية التوجه مفهوم الوراثة، وأبسط صيغة لتعريف صنف مشتق أو موروث من صنف آخر هي: class DerivedClassName(BaseClassName):     <statement-1>     .     .     .     <statement-N> يجب أن يكون الاسم BaseClassName معرّفًا في النطاق الذي يحتوي تعريف الصنف المشتق. ويمكن استخدام أي تعبير محلّ اسم الصنف الأساسي، ويمكن لهذا أن يكون مفيدًا عندما يكون الصنف الأساسي معرّفًا في وحدة أخرى على سبيل المثال: class DerivedClassName(modname.BaseClassName): يجري تنفيذ تعريف الصنف المشتق بنفس الطريقة ...

الدالة super()‎ في بايثون

تعيد الدّالة super()‎ كائنًا وسيطًا يُفوّض استدعاءات التّوابع إلى صنف أبٍ أو صنف شقيق للصّنف الذي استُدعيَت منه الدّالة. هذا مُفيد للوصول إلى التّوابع الموروثة التي أعيدت كتابتها في صنف مُعيّن. ترتيب البحث يكون هو نفسه التّرتيب المُستخدم من طرف الدّالة getattr()‎ لكنّ النّوع type‎ المُعطى يُتجاهَل. البنية العامة super([type[, object-or-type]]) المعاملات type النّوع الذي ستقوم الدّالة super()‎ بتفويض استدعاءات التّوابع إلى صنف أبٍ أو صنف شقيق له. تعرض الخاصيّة __mro__ الخاصّة بالصّنف type ترتيب البحث عن التوابع (method resolution ...

الصنف urllib.request.AbstractDigestAuthHandler في بايثون

صنف مخلوط mixin class يساعد في عمليات استيثاق HTTP لكلٍّ من المضيف البعيد remote host والوسيط proxy. البنية العامة urllib.request.AbstractDigestAuthHandler(password_mgr=None) المعاملات password_mgr معامل اختياري، ويجب أن تكون قيمته متوافقة مع الصنف HTTPPasswordMgr. راجع قسم كائنات HTTPPasswordMgr للاطلاع على معلومات مفصّلة حول الواجهة التي يجب أن تكون مدعومة. مصادر صفحة Extensible library for opening URLs في توثيق بايثون الرسمي.

الوحدة urllib.parse‎‎ في بايثون

تعرّف هذه الوحدة واجهة معيارية لتقسيم سلاسل محدّد موقع الموارد المحدّد Uniform Resource Locator (‏URL اختصارًا) إلى مكوّنات (نظام العنونة addressing scheme، موقع الشبكة network location، المسار path ... الخ)، ولدمج هذه المكونات مرّة أخرى في سلسلة URL، ولتحويل "URL نسبي" إلى URL مطلق بالاعتماد على "URL أساسي". صمّمت هذه الوحدة لتطابق معايير RFC للإنترنت الخاصّة بالمحدّدات النسبية لمواقع الموارد المحدّدة Relative Uniform Resource Locators. وتدعم الوحدة الأنواع التالية من مخطّطات URL: file, ftp, gopher, hdl, http, https, imap, mailto, ...

الوحدة urllib.parse‎‎ في بايثون

تعرّف هذه الوحدة واجهة معيارية لتقسيم سلاسل محدّد موقع الموارد المحدّد Uniform Resource Locator (‏URL اختصارًا) إلى مكوّنات (نظام العنونة addressing scheme، موقع الشبكة network location، المسار path ... الخ)، ولدمج هذه المكونات مرّة أخرى في سلسلة URL، ولتحويل "URL نسبي" إلى URL مطلق بالاعتماد على "URL أساسي". صمّمت هذه الوحدة لتطابق معايير RFC للإنترنت الخاصّة بالمحدّدات النسبية لمواقع الموارد المحدّدة Relative Uniform Resource Locators. وتدعم الوحدة الأنواع التالية من مخطّطات URL: file, ftp, gopher, hdl, http, https, imap, mailto, ...

تبديل رموز الأنواع بالأصناف (Replace Type Code with Class)

ما هو رمز النوع (type code)؟ يحدث رمز النوع عندما يوجد مجموعة من الأرقام أو السلاسل النصية التي تشكل قائمة بالقيم المسموح بها لبعض العناصر بدلًا من استخدام نوع بيانات منفصل. غالبا ما تُعطى هذه الأرقام والسلاسل المحددة أسماءً مفهومة عن طريق الثوابت، وهو السبب في استخدام هذه الرموز بشكل كبير. المشكلة يحتوي الصنف على حقل يحتوي على رموز الأنواع. ولا تُستخدم قيم هذا النوع في شروط المُشغِّل ولا تؤثر على سلوك البرنامج. الحل إنشاء صنف جديد واستخدام كائناته بدلًا ...

الوحدة urllib.response‎‎ في بايثون

تعرّف وحدة urllib.response دوالَّ وأصنافًا تقدّم واجهة مصغّرة شبيهة بواجهة التعامل مع الملفات، وتتضمّن الدالتين read()‎ و readline()‎. كائن الاستجابة الاعتيادي هو نسخة من addinfourl والتي تعرف التابع info()‎ الذي يعيد الترويسات وتابع geturl()‎ الذي يعيد عنوان URL. تستخدم الدوال المعرّفة في هذه الوحدة بواسطة الوحدة urllib.request. انظر أيضًا الوحدة urllib.request: تقدّم الوحدة عددًا من الدوال والأصناف التي تساعد في فتح عناوين URL‏ (HTTP في الغالب) لاستخدامها في عمليات مختلفة مثل الاستيثاق البسيط وإعادة التوجيه والتعامل مع الكعكات cookies وغيرها. مصادر ...

الأصناف في بايثون

تعدّ الأصناف وسيلة لجمع البيانات والعمليات في بوتقة واحدة، ويؤدي إنشاء صنف جديد إلى تكوين نوع جديد من الكائنات، ما يتيح إنشاء نسخ (instances) من ذلك النوع. يمكن أن ترتبط بكلّ صنف مجموعة من الخاصيات (attributes) التي تساعد في متابعة حالة الصنف، إضافة إلى مجموعة من التوابع (methods) التي تساعد في تعديل حالة ذلك الصنف. لو أجرينا مقارنة بين بايثون ولغات البرمجة الأخرى، سنجد بأنّ بايثون تضيف قدرًا ضئيلًا من الصياغات الجديدة إلى الأصناف؛ إذ تعتمد بايثون الأساليب المتّبعة في ...

المولدات Generators في بايثون

المولّدات هي أداة بسيطة وقوية لإنشاء المكرِّرات. تأخذ المولِّدات صيغة الدوال العادية ولكنّها تستخدم عبارة yield عند إعادة البيانات. في كلّ مرة تستدعى فيها الدالة next()‎ على المولّدات تعود الأخيرة إلى المكان الذي تركته (تتذكر المولّدات جميع القيم والعبارات التي نفّذت أخيرًا). يوضح المثال التالي كيفية إنشاء المولّدات وآلية عملها: def reverse(data):     for index in range(len(data)-1, -1, -1):         yield data[index] >>> >>> for char in reverse('golf'): ...     print(char) ... f l o g يمكن إنجاز كل ما تقوم به المولّدات باستخدام مكرِّرات صنفية (class-based ...

عبارة pass في بايثون

لا تؤدي عبارة pass أي عمل على الإطلاق، ويمكن استخدامها عندما تكون عبارة معيّنة مطلوبة لغويًّا ولكنّها لا تؤدّي وظيفة معينة. فعلى سبيل المثال يؤدي تنفيذ الشيفرة التالية إلى جعل مفسّر بايثون مشغولًا وبانتظار قطع عملية التنفيذ عن طريق الضغط على مفتاحي Ctrl+C: >>> while True: ...     pass ... تستخدم هذه العبارة عادة في إنشاء أصناف مصغّرة: >>> class MyEmptyClass: ...     pass ... يمكن استخدام عبارة pass أيضًا كنصّ بديل مؤقت لدالة أو جملة شرطية معيّنة عند العمل على شيفرة جديدة، الأمر الذي ...

التابع URLopener.open()‎‎ في بايثون

يفتح التابع عنوان URL الكامل المعطى باستخدام البروتوكول المناسب. يهيّئ هذا التابع الذاكرة المخبئية ومعلومات الوسيط، ثم يستدعي تابع الفتح الملائم مع وسائط الإدخال الخاصة به. إن لم يتمكن التابع من التعرّف على المخطّط يُستدعى التابع open_unknown()‎. البنية العامة URLopener.open(fullurl, data=None) ‎المعاملات ‎data يحمل المعامل data المعنى نفسه لنظيره في الدالة urlopen()‎. القيمة المعادة يعيد التابع كائن urllib.response.addinfourl. أمثلة يقرأ المثال التالي أول 300 بايت من موقع Python: >>> from urllib import request >>> opener = request.URLopener() >>> result = opener.open("https://www.python.org") >>> print(result.read(300)) b'<!doctype ...

الصنف shelve.DbfilenameShelf()‎ في بايثون

صنف متفرّع من الصنف Shelf ويأخذ ملفًّا عوضًا عن كائن شبيه بالقاموس. البنية العامة class shelve.DbfilenameShelf(filename, flag='c', protocol=None, writeback=False) المعاملات يحمل المعامل الاختياري flag نفس المعنى الذي يحمله في الدالة open()‎. وتحمل المعاملات الاختيارية protocol و writeback و keyencoding المعاني نفسها التي تحملها في الصنف Shelf. انظر أيضًا الصنف shelve.Shelf: صنف متفرّع من الصنف collections.abc.MutableMapping مهمّته تخزين القيم المسلسلة في كائن dict المعطى. الصنف shelve.BsdDbShelf: صنف متفرّع من الصنف Shelf ويقدّم التوابع first()‎ و next()‎ و previous()‎ و last()‎ و ...

الاستثناءات المعرفة من طرف المستخدم

يمكن للمستخدم إنشاء صنف استثناء جديد (راجع قسم الأصناف في بايثون للمزيد من المعلومات)، ويجب أن تكون الاستثناءات مشتقّة من الصنف Exception سواء أكان ذلك بصورة مباشرة أو غير مباشرة. يمكن تعريف أصناف الاستثناءات لتؤدي نفس العمل الذي يؤدّيه أيّ صنف آخر، ولكنّها تكون في العادة بسيطة، وتقدّم في أغلب الأحيان عددًا من الخاصيات التي تسمح لمعالجات الاستثناءات باستخراج المعلومات الخاصة بالخطأ. عند إنشاء وحدة لها القدرة على إطلاق استثناءات مختلفة، فمن الشائع إنشاء صنف أساس للاستثناءات يُعرّف بواسطة تلك ...

الاستثناءات المعرفة من طرف المستخدم

يمكن للمستخدم إنشاء صنف استثناء جديد (راجع قسم الأصناف في بايثون للمزيد من المعلومات)، ويجب أن تكون الاستثناءات مشتقّة من الصنف Exception سواء أكان ذلك بصورة مباشرة أو غير مباشرة. يمكن تعريف أصناف الاستثناءات لتؤدي نفس العمل الذي يؤدّيه أيّ صنف آخر، ولكنّها تكون في العادة بسيطة، وتقدّم في أغلب الأحيان عددًا من الخاصيات التي تسمح لمعالجات الاستثناءات باستخراج المعلومات الخاصة بالخطأ. عند إنشاء وحدة لها القدرة على إطلاق استثناءات مختلفة، فمن الشائع إنشاء صنف أساس للاستثناءات يُعرّف بواسطة تلك ...

كائنات OrderedDict‎ في بايثون

القواميس المرتّبة OrderedDict مطابقة للقواميس العادية باستثناء أنّها تتذكر ترتيب العناصر لحظة إدراجها فيها، بمعنى أنّه عند إضافة العناصر إلى قاموس مرتب، تعاد العناصر حسب ترتيب مفاتيحها عند إضافتها أول مرّة. البنية العامة class collections.OrderedDict([items]) تعيد الدالة البانية نسخة من صنف متفرّع عن الصنف dict تدعم جميع توابعه. كائن OrderedDict هو قاموس يتذكّر ترتيب مفاتيحه عند إدخالها أوّل مرة. وإن جرى كتابة عنصر جديد فوق عنصر موجود في القاموس المرتّب، فإنّ موضع الإدخال الأصلي لا يتغيّر، أما حذف عنصر معيّن ...

الصنف shelve.BsdDbShelf()‎ في بايثون

صنف متفرّع من الصنف Sh4elf ويقدّم التوابع first()‎ و next()‎ و previous()‎ و last()‎ و set_location()‎ وهي متوفّرة في الوحدة bsddb من pybsddb ولكن ليس في وحدات قواعد البيانات الأخرى. البنية العامة class shelve.BsdDbShelf(dict, protocol=None, writeback=False, keyencoding='utf-8') المعاملات dict يجب أن يدعم كائن dict الممرّر في الدالة البانية هذه التوابع، ويتحقّق ذلك -عامّةً- باستدعاء أحد التوابع bsddbp.hashopen()‎ أو bsddb.btopen()‎ أو bsddb.rnopen()‎. تحمل المعاملات الاختيارية protocol و writeback و keyencoding المعاني نفسها التي تحملها في الصنف Shelf. انظر أيضًا الصنف shelve.Shelf: ...

الدالة weakref.finalize()‎ في بايثون

يعيد هذا الصنف كائن إنهاء finalizer قابل للاستدعاء، ويجري استدعاؤه عند استرجاع الكائن المعطى بواسطة مجموعة garbage. البنية العامة class weakref.finalize(obj, func, *args, **kwargs) المعاملات يعدّ كائن الإنهاء "حيًّا" إلى حين استدعائه (إما على نحو صريح أو في مجموعة garbage) وبعد ذلك يصبح "ميّتًا". تؤدي عملية استدعاء كائن إنهاء حيّ إلى إعادة نتيجة تنفيذ func(*arg, **kwarg)‎، في حين تعيد عملية استدعاء كائن إنهاء ميّت القيمة None. من الضروري التأكّد من أن func و args و kwargs لا تمتلك أيّ إشارات ...

التابع datetime.tzname()‎ في بايثون

يحدّد التابع اسم المنطقة الزمنية لكائن datetime. البنية العامة ‎datetime.tzname() القيمة المعادة إن أخذ الكائن tzinfo القيمة None، فإنّ التابع يعيد القيمة ذاتها، وإلاّ فإنّه يعيد self.tzinfo.tzname(None)‎، ويطلق التابع استثناءً إن لم تُعِد العبارة السابقة القيمة None أو كائن سلسلة نصية. أمثلة يبين المثال التالي آلية عمل التابع: ‎>>> from datetime import datetime, tzinfo, timedelta >>> class GMT1(tzinfo): ... def tzname(self, dt): ... return "Europe/Prague" ... >>> dt ...

الدالة hasattr()‎ في بايثون

تعيد الدّالة hasattr()‎ قيمةً منطقيّةً تُحدّد ما إذا كانت الخاصيّةُ المُعطى اسمُها موجودةً في الكائن المُعطى أم لا. البنية العامة hasattr(object, name) المعاملات object الكائن المُراد التّحقق من وجود الخاصيّة فيه. name سلسلة نصيّة تُمثّل اسم الخاصيّة المرغوب التّحقق من وجودها في الكائن. القيمة المعادة القيمة True إن كانت الخاصيّة موجودة. والقيمة False إن لم تكن كذلك. أمثلة المثال التّالي يوضّح كيفيّة عمل هذه الدّالة: >>> class A: ... x = 1 ... >>> hasattr(A, 'x') # الخاصيّة ...

الدالة getattr()‎ في بايثون

تعيد الدّالة getattr()‎ قيمة الخاصيّة المُعطاة من الكائن المُعطى. البنية العامة getattr(object, name[, default]) المعاملات object الكائن المراد الحصول على قيمة خاصيّته. name سلسلة نصيّة تُمثّل اسم الخاصيّة المرغوب الوصول إلى قيمتها. default مُعامل اختياريّ. القيمة الافتراضيّة التي ستُعاد إن لم تكن الخاصيّة موجودة. القيمة المعادة قيمة الخاصيّة ذات الاسم الذي يوافق المُعامل name. إن لم تكن الخاصيّة موجودة فستُعاد قيمة المُعامل default إن توفّر، أو سيُطلَق خطأ AttributeError إن لم تتوفّر قيمة للمُعامل. أمثلة المثال التّالي يوضّح كيفيّة عمل ...

الدالة wsgiref.handlers.read_environ في بايثون

تحول الدالة متغيرات CGI من os.environ إلى سلاسل (bytes in unicode) النصية ضمن المعيار PEP 3333، وتعيد قاموسًا جديدًا. يستخدم المعالجان CGIHandler و IISCGIHandler هذه الدالة عوضًا عن استخدام os.environ مباشرة، والذي يمكن أن لا يكون متوافقًا مع معايير WSGI في جميع المنصات ومخدّمات الويب التي تستخدم الإصدار 3 من بايثون، وعلى وجه الخصوص الأنظمة التي تكون Unicode فيها هي البيئة الفعلية (مثل نظام ويندوز) أو الأنظمة التي تكون البيئة فيها هي البايتات ولكن بايثون لا تستخدم الترميز ISO-8859-1 لفكّ ...

الصنف PyZipFile()‎‎ في بايثون

تأخذ الدالة البانية للصنف PyZipFile نفس المعاملات الموجودة في الدالة البانية للصنف ZipFile إضافة إلى المعامل optimize. البنية العامة class zipfile.PyZipFile(file, mode='r', compression=ZIP_STORED, allowZip64=True, optimize=-1) ‎المعاملات optimize راجع توثيق التابع PyZipFile.writepy()‎ للاطلاع على وظيفة هذا المعامل. ملاحظات: هذا الكائن جديد في الإصدار 3.2 من بايثون. أصبحت إضافات ZIP64 مفعّلة بصورة افتراضية في الإصدار 3.4 من بايثون. توابع الصنف ZipFile تمتلك نسخ هذا الصنف نفس التوابع الموجودة في الصنف ZipFile إضافة إلى التابع التالي: التابع PyZipFile.writepy()‎ يبحث التابع عن الملفات ذات ...

التابع time.tzname()‎ في بايثون

يحدّد التابع اسم المنطقة الزمنية لكائن الوقت. البنية العامة ‎time.tzname() القيمة المعادة إن أخذ الكائن tzinfo القيمة None، فإنّ التابع يعيد القيمة ذاتها، وإلاّ فإنّه يعيد self.tzinfo.tzname(None)‎، ويطلق التابع استثناءً إن لم تُعِد العبارة السابقة القيمة None أو كائن timedelta بفارق زمني لا يتجاوز اليوم الواحد. ملاحظة: في الإصدار 3.7 من بايثون، لم يعد مقدار الإزاحة عن التوقيت العالمي المنسّق مقيّدًا بعدد صحيح من الدقائق. أمثلة يبين المثال التالي آلية عمل التابع: ‎>>> from datetime import time, tzinfo, timedelta >>> class ...

التابع time.dst()‎ في بايثون

يتيح التابع القدرة على تحديد ما إذا كان التوقيت الصيفي مستخدمًا أم لا. البنية العامة ‎time.dst() القيمة المعادة إن أخذ الكائن tzinfo القيمة None، فإنّ التابع يعيد القيمة ذاتها، وإلاّ فإنّه يعيد self.tzinfo.dst(None)‎‎، ويطلق التابع استثناءً إن لم تُعِد العبارة السابقة القيمة None أو كائن timedelta بفارق زمني لا يتجاوز اليوم الواحد. ملاحظة: في الإصدار 3.7 من بايثون، لم يعد مقدار الإزاحة عن نظام التوقيت الصيفي مقيّدًا بعدد صحيح من الدقائق. أمثلة يبين المثال التالي آلية عمل التابع: ‎>>> from ...

الصنف wsgiref.handler.CGIHandler‎‎ في بايثون

يستند هذا المعالج على sys.stdin و sys.stdout و sys.stderr و os.environ. يمكن الاستفادة من هذا الصنف عند الحاجة إلى تشغيل تطبيق WSGI كشيفرة CGI، حيث يمكن ببساطة تنفيذ التعبير CGIHandler().run(app)‎، إذ يمثل المعامل app كائن تطبيق WSGI الذي ترغب في تنفيذه. يتفرّع هذا الصنف من الصنف BaseCGIHandler والذي يعين القيمة True للمتغير wsgi.run_once والقيمة False للمتغير wsgi.multithreadto، والقيمة True للمتغير wsgi.multiprocess ويستخدم الوحدتين sys و os دائمًا للحصول على تدفقات وبيئة CGI التي يحتاج إليها في عمله. انظر أيضًا الصنف ...

الدالة repr()‎ في بايثون

تعيد الدّالة repr()‎ سلسلة نصيّة تحتوي على تمثيل قابل للطّباعة للكائن المُعطى. البنية العامة repr(object) المعاملات object الكائن المرغوب الحصول على تمثيله. القيمة المعادة في الكثير من الحالات، تُحاول الدّالة إعادة سلسلة نصيّة تُعيد كائنًا بنفس القيمة عند تمريره إلى الدّالة eval()‎، وفي غير ذلك من حالات، يكون التّمثيل سلسلةً نصيّة، ويكون مُضمّنًا داخل قوسي <>‎ يحتوي على اسم نوع الكائن إضافةً إلى معلومات أخرى، وعادةً ما تكون هذه المعلومات اسم الكائن وعنوانه في الذّاكرة. يُمكن لصنفٍ أن يتحكّم فيما ...

الدالة setattr()‎ في بايثون

تُنشئ الدّالة setattr()‎ قيمة لخاصيّة كائن مُعيّن. البنية العامة setattr(object, name, value) المعاملات object الكائن المُراد تعديل خاصيّة من خاصيّاته أو إضافة خاصّية جديدة إليه إن لم تكن موجودة مُسبقًا. name سلسلة نصيّة تُمثّل اسم الخاصيّة، يُمكن أن تكون الخاصيّة موجودة مُسبقًا (ستُغيّر قيمتها) أو غير موجودة (ما يعني أنّها ستُنشأ). value القيمة المرغوب إسنادها للخاصيّة. القيمة المعادة القيمة None. ملاحظات يجب على الكائن أن يسمح بتعديل خاصيّاته. الاستدعاء ‎setattr‎(‎x,‎ ‎'foobar'‎, 123‎)‎ مُكافئ للجملة ‎x.‎‎foobar‎ ‎=‎‎ 123‎. أمثلة المثال التّالي ...

التابع datetime.dst()‎ في بايثون

يتيح التابع القدرة على تحديد ما إذا كان التوقيت الصيفي مستخدمًا أم لا. البنية العامة ‎datetime.dst() القيمة المعادة إن أخذ الكائن tzinfo القيمة None، فإنّ التابع يعيد القيمة ذاتها، وإلاّ فإنّه يعيد self.tzinfo.dst(None)‎‎، ويطلق التابع استثناءً إن لم تُعِد العبارة السابقة القيمة None أو كائن timedelta بفارق زمني لا يتجاوز اليوم الواحد. ملاحظة: في الإصدار 3.7 من بايثون، لم يعد مقدار الإزاحة عن نظام التوقيت الصيفي مقيّدًا بعدد صحيح من الدقائق. أمثلة يبين المثال التالي آلية عمل التابع: ‎>>> from ...

التابع datetime.datetime.utcoffset()‎ في بايثون

يحدّد التابع مقدار إزاحة الوقت في كائن datetime عن التوقيت العالمي المنسّق. البنية العامة ‎datetime.utcoffset() القيمة المعادة إن أخذ الكائن tzinfo القيمة None، فإنّ التابع يعيد القيمة ذاتها، وإلاّ فإنّه يعيد self.tzinfo.utcoffset(None)‎، ويطلق التابع استثناءً إن لم تُعِد العبارة السابقة القيمة None أو كائن timedelta بفارق زمني لا يتجاوز اليوم الواحد. ملاحظة: في الإصدار 3.7 من بايثون، لم يعد مقدار الإزاحة عن التوقيت العالمي المنسّق مقيّدًا بعدد صحيح من الدقائق. أمثلة يبين المثال التالي آلية عمل التابع: ‎>>> from datetime ...

التابع time.utcoffset()‎ في بايثون

يحدّد التابع مقدار الإزاحة عن التوقيت العالمي المنسّق. البنية العامة ‎time.utcoffset() القيمة المعادة إن أخذ الكائن tzinfo القيمة None، فإنّ التابع يعيد القيمة ذاتها، وإلاّ فإنّه يعيد self.tzinfo.utcoffset(None)‎، ويطلق التابع استثناءً إن لم تُعِد العبارة السابقة القيمة None أو كائن timedelta بفارق زمني لا يتجاوز اليوم الواحد. ملاحظة: في الإصدار 3.7 من بايثون، لم يعد مقدار الإزاحة عن التوقيت العالمي المنسّق مقيّدًا بعدد صحيح من الدقائق. أمثلة يبين المثال التالي آلية عمل التابع: ‎>>> from datetime import time, tzinfo, timedelta >>> ...

الدالة vars()‎ في بايثون

تعيد الدّالة vars()‎ قيمة الخاصيّة ‎_‎_‎dict‎_‎_‎ الخاصّة بوحدة، أو صنف، أو نُسخة، أو أيّ كائن يمتلك خاصيّةً باسم ‎_‎_‎dict‎_‎_‎. تملك الكائنات مثل الوحدات والنّسخ خاصيّة ‎_‎_‎dict‎_‎_‎ يُمكن تحديثها، لكنّ كائنات أخرى قد تفرض قيودًا على خاصيّة ‎_‎_‎dict‎_‎_‎ الخاصّة بها (فمثلا، يُمكن للأصناف استعمال النّوع ‎‎types‎.‎MappingProxyType‎ لمنع تحديث القاموس مُباشرةً). البنية العامة vars([object]) المعاملات object مُعامل اختياريّ يُمثّل الكائن المرغوب الحصول على قيمة الخاصيّة ‎_‎_‎dict‎_‎_‎ الخاصّة به. القيمة المعادة قيمة الخاصيّة ‎_‎_‎dict‎_‎_‎ الخاصّة بالكائن، وتُمثّل قيمته قاموسًا يحتوي على خاصيّات الكائن ...

الصنف urllib.request.AbstractBasicAuthHandler في بايثون

صنف مخلوط mixin class يساعد في عمليات استيثاق HTTP لكلٍّ من المضيف البعيد remote host والوسيط proxy. البنية العامة urllib.request.AbstractBasicAuthHandler(password_mgr=None) المعاملات password_mgr معامل اختياري، ويجب أن تكون قيمته متوافقة مع الصنف HTTPPasswordMgr. راجع قسم كائنات HTTPPasswordMgr للاطلاع على معلومات مفصّلة حول الواجهة التي يجب أن تكون مدعومة. إن كانت قيمة passwd_mgr تقدّم التابعين is_authenticated و update_authenticated (راجع كائنات HTTPPasswordMgrWithPriorAuth) فإنّ الصنف المعالج سيستخدم نتيجة استدعاء التابع is_authenticated لعنوان URI معين لتحديد ما إذا ستُرسل معلومات الاستيثاق مع الطلب أم لا. ...

Python/namedtuple

تعطي الصفوف المسمّاة معنى لكل عنصر ضمن الصف، وينتج عن ذلك شيفرة أسهل في القراءة وموثّقة ذاتيًّا. يمكن استخدام الصفوف المسمّاة في أيّ مكان تستخدم فيه الصفوف العادية، وتمتاز بإمكانية الوصول إلى الحقول عن طريق الأسماء بدلًا من فهرس العنصر. البنية العامة تستخدم الدالة namedtuple()‎ لإنشاء الصفوف المسمّاة وصيغتها العامّة هي: namedtuple(typename, field_names, *, verbose=False, rename=False, module=None) تعيد هذه الدالة البانية صنفًا فرعيًا من الصنف tuple يحمل الاسم typename. يُستخدم الصنف الفرعي الجديد في إنشاء كائنات شبيهة بالصفوف تمتلك حقولًا ...

الدالة weakref.WeakKeyDictionary()‎ في بايثون

صنف ربط Mapping Class ينشئ إشارات ضعيفة إلى المفاتيح. يجري تجاهل عناصر القاموس التي لا تمتلك أي إشارات قوية إلى مفاتيحها، ويمكن الاستفادة من ذلك في ربط بيانات إضافية مع كائن معين يتبع جزءًا آخر في التطبيق دون الحاجة إلى إضافة الخصائص إلى تلك الكائنات، وتظهر أهمّية هذا الأمر مع الكائنات التي تعيد تعريف override قابلية الوصول إلى الخصائص. البنية العامة weakref.WeakKeyDictionary([dict]) المعاملات dict القاموس الذي سينشئ هذا الصنف إشارات ضعيفة إلى مفاتيحه. تنبيه: لما كان WeakKeyDictionary مبنيًا على قواميس ...

الدالة delattr()‎ في بايثون

تحذف الدّالة delattr()‎ الخاصيّة المُعطاة من الكائن (إن سمَح الكائن بحذف الخاصيّة). البنية العامة delattr(object, name) المعاملات object الكائن المرغوب حذف خاصيّةٍ من خاصيّاته. name سلسلة نصيّة تُمثّل اسم الخاصيّة المرغوب حذفها. القيمة المعادة القيمة None كبقيّة الدّوال التي لا تُعيد أي قيمة صراحةً في بايثون. أمثلة المثال التّالي يوضّح كيفيّة عمل هذه الدّالة، لاحظ أنّها مُشابهة للكلمة المفتاحيّة del التي تحذف الكائنات: >>> class A: ... def __init__(self, a=1, b=2): ... ...

الوحدة collections.abc‎ في بايثون

تقدّم هذه الوحدة مجموعة من الأصناف الأساسية المجرّدة abstract base calsses (يرمز لها ABC اختصارًا) والتي يمكن استخدامها للتأكد ممّا إذا كان صنف معيّن يقدّم واجهة interface معينة، كأن يكون الصنف قابلًا للتقطيع hashable أو أنّه صنف ربط mapping. ملاحظة: قبل الإصدار 3.3 من اللغة كانت هذه الوحدة جزءًا من وحدة collections. الأصناف الأساسية المجرّدة في الوحدة collections تقدّم وحدة collections الأصناف الأساسية المجرّدة التالية: الصنف الأساسي المجرد يرث من التوابع المجرّدة توابع mixin Container   __contains__   Hashable   ...

كائنات ChainMap‎ في بايثون

يقدّم الصنف Chainmap طريقة سريعة لربط عدد من عمليات الربط mappings ليصبح بالإمكان التعامل معها كوحدة واحدة. وعادة ما تكون هذه الطريقة أسرع من إنشاء قاموس جديد واستدعاء التابع update()‎ مرّات عدة. يمكن استخدام هذا الصنف لمحاكاة النطاقات المتشعّبة وهو مفيد في عملية القولبة templating. البنية العامة class collections.ChainMap(*maps) يجمع الصنف CmainMap عددًا من القواميس أو وسائل الربط الأخرى لإنشاء عرض مفرد قابل للتحديث. في حال تعيين قيمة المعامل maps، فإنّ الصنف يقدّم قاموسًا واحدًا فارغًا، وبهذا ستمتلك السلسلة الجديدة كائن ...

الوحدة copyreg‎ في بايثون

تقدّم وحدة copyreg طريقة لتعريف دوال تستخدم أثناء سلسلة كائنات معيّنة في بايثون. تستخدم وحدتا pickle و copy هذه الدوال عند سلسلة أو نسخ تلك الكائنات. تقدّم الوحدة كذلك معلومات إعدادات حول الدوال البانية للكائنات التي ليست أصنافًا. يمكن لهذه الدوال البانية أن تكون دوال منشئة للكائنات factory functions أو نسخًا للأصناف. دوال الوحدة copyreg تقدّم الوحدة copyreg الدوال التالية: الدالة ‎copyreg.constructor()‎ تصرّح هذه الدالة عن كون الكائن المعطى دالة بانية صحيحة. إن كان الكائن المعطى غير قابل للاستدعاء (وهكذا ...

الصنف wsgiref.handlers.BaseCGIHandler‎‎ في بايثون

هذا الصنف مشابه للصنف CGIHandler، ولكن عوضًا عن استخدام الوحدتين sys و os، فإنّ بيئة CGI و تدفقات المدخلات والمخرجات تحدّد من قبل المستخدم. يتفرّع هذا الصنف من الصنف SimpleHandler وهو غير معدّ للاستخدام مع مخدّمات من نوع HTTP. إن كنت تكتب شيفرة تستخدم بروتوكول بوابة (مثل CGI، FastCGI، SCGI وغيرها) تستخدم الترويسة Status‎:‎ لإرسال حالة HTTP، فمن الأفضل تفريع هذا الصنف عوضًا عن الصنف SimpleHandler. البنية العامة wsgiref.handlers.BaseCGIHandler(stdin, stdout, stderr, environ, multithread=True, multiprocess=False) ‎المعاملات ‎stdin تدفّق المدخلات. stdout تدفق ...

الصنف wsgiref.handlers.SimpleHandler‎‎ في بايثون

هذا الصنف مشابه للصنف BaseCGIHandler، ولكنّه مصمّم للاستخدام مع المخدمّات من نوع HTTP. إن كنت تكتب شيفرة تستخدم بروتوكول بوابة فمن الأفضل تفريع هذا الصنف عوضًا عن الصنف BaseCGIHandler. يتفرّع هذا الصنف من الصنف BaseHandler، ويعيد تعريف التوابع ‎__init__()‎ و get_stdin()‎ و getstderr()‎ و add_cgi_vars()‎ و ‎_write()‎ و ‎_flush()‎ لدعم إمكانية تعيين بيئة CGI وتدفقات المدخلات والمخرجات والأخطاء في الدالة البانية. تُخزّن البيئة والتدفقات التي يقدّمها المستخدم في الخصائص stdin و stdout و stderr و environ. يجب أن يكتب التابع ...

Python/types

تقدّم هذه الوحدة عددًا من الدوال المساعدة لإنشاء أنواع بيانات جديدة بصورة ديناميكية، إضافة إلى أنّها تعرّف أسماءً لبعض أنواع الكائنات التي يستخدمها مفسّر بايثون المعياري، ولكنّها ليست كائنات داخلية مثل int أو str، إلى جانب أنّ هذه الوحدة تقدم بعض الأصناف والدوال المساعدة الخاصة ببعض الأنواع، والتي لا تعدّ أساسية بما يكفي لتصبح أصنافًا ودوالّ داخلية. إنشاء الأنواع ديناميكيًا تقدّم هذه الوحدة ثلاث دوالّ تساعد في إنشاء أنواع البيانات ديناميكيًا: الدالة types.new_class()‎‎ تنشئ هذه الدالة ديناميكيًا كائن صنف باستخدام ...

التابع Connection.create_aggregate()‎ في بايثون

ينشئ التابع دالة تجميع aggregate function معرّفة من قبل المستخدم. البنية العامة create_aggregate(name, num_params, aggregate_class) المعاملات name اسم دالة التجميع المراد إنشاؤها. num_params عدد المعاملات التي تستقبلها الدالة (يمكن تعيين القيمة ‎-1 لهذا المعامل لتستقبل الدالة أي عدد من المعاملات). aggregate_class صنف تجميع يجب أن يتضمّن تابع step، والذي يأخذ المعامل num_params والذي يحدّد عدد المعاملات في الدالة التي ينشئها التابع (يمكن تعيين القيمة ‎-1 لهذا المعامل لتستقبل الدالة أي عدد من المعاملات)، وتابع finalize والذي سيعيد النتيجة النهائية من ...

التابع Cursor.executemany()‎ في بايثون

ينفّذ التابع أمر SQL على جميع تسلسلات المعاملات parameter sequences أو الروابط mappings الموجودة في تسلسل المعاملات المعطى. البنية العامة executemany(sql, seq_of_parameters) ‎المعاملات sql سلسلة نصية تتضمن جمل SQL المراد تنفيذها. seq_of_parameters ينفّذ التابع أمر SQL على جميع تسلسلات المعاملات parameter sequences أو الروابط mappings الموجودة في التسلسل seq_of_parameters. تسمح وحدة sqlite3 كذلك باستخدام مكرِّر ينتج معاملات بدلًا عن إنتاج تسلسل. أمثلة يبين المثال التالي طريقة استخدام التابع: import sqlite3 class IterChars: def __init__(self): ...

الوحدة urllib.error‎‎ في بايثون

تعرّف الوحدة urllib.error الأصناف الخاصة بالاستثناءات التي تُطلقها الوحدة urllib.request. الصنف الأساسي في هذه الوحدة هو URLError. تطلق الوحدة urllib.error الاستثناءات التالية: الاستثناء urllib.error.URLError تُطلق أصناف المعالجة هذا الاستثناء (أو الاستثناءات المشتقة منه) عند وقوعها في مشكلة معيّنة. هذا الاستثناء هو صنف متفرّع من الاستثناء OSError. reason سبب حدوث هذا الخطأ. يمكن أن تكون رسالة على هيئة سلسلة نصية أو نسخة من استثناء آخر. ملاحظة: أصبح URLError صنفًا متفرّعًا من الصنف OSError عوضًا عن IOError في الإصدار 3.3 من بايثون. ...

وحدة reprlib‎ في بايثون

تقدّم وحدة reprlib وسيلة لإنتاج تمثيلات للكائنات مع إمكانية تحديد حجم السلسلة النصية الناتجة. تستخدم هذه الوحدة في منقّح بايثون وقد تكون مفيدة في سياقات أخرى أيضًا. الواجهة البرمجية لوحدة reprlib تقدّم هذه الوحدة صنفًا ونسخة صنف ودالة: الصنف reprlib.Repr يقدّم هذا الصنف خدمات تنسيق يمكن الاستفادة منها في إنشاء دوال مشابهة للدالة الداخلية repr()‎. ولتجنّب إنشاء تمثيلات ذات أحجام كبيرة جدًّا، فإنّ أحجام أنواع البيانات المستخدمة في هذا الصنف تكون محدّدة. نسخة الصنف reprlib.aRepr نسخة من الصنف Repr تستخدم ...

الصنف datetime.timezone()‎ في بايثون

الصنف timezone هو صنف فرعي من الصنف tzinfo، وتمثّل كل نسخة من منه منطقة زمنية محدّدة بمقدار إزاحة ثابت عن التوقيت العالمي المنسّق. يجب الانتباه إلى أنه لا يمكن استخدام كائنات هذا الصنف لتمثيل معلومات المناطق الزمنية في المواقع التي تستخدم فيها مقادير إزاحة مختلفة خلال السنة، أو المناطق التي حدث فيها تغييرات تاريخية على الأوقات المدنية. البنية العامة class datetime.timezone(offset, name=None) المعاملات offset كائن timedelta يمثّل الفارق بين التوقيت المحلي والتوقيت العالمي المنسّق، ويجب أن يأخذ قيمة تكون ضمن ...

كائنات UserDict‎ في بايثون

يعدّ UserDict صنفًا يغلّف كائنات القاموس في بايثون، ولكن الحاجة إلى هذا الصنف أصبحت محدودة نظرًا لإمكانية التفريع المباشر من الصنف dict، ولكن التعامل مع هذا الصنف أسهل بسبب إمكانية الوصول إلى القاموس الضمني كخاصية. البنية العامة ‎class collections.UserDict([initialdata]) يحاكي الصنف UserDict القاموس العادي في بايثون، وتحتفظ اللغة بمحتويات النسخة في قاموس عادي يمكن الوصول إليه عن طريق خصائص نسخة الصنف UserDict. تُهيّئ نسخة الصنف UserDict مع محتويات المعامل initialdata عند توفّرها، مع ملاحظة أنّه لا يتم الاحتفاظ بإشارة إلى ...

الدالة functools.partialmethod()‎ في بايثون

تعيد الدّالة functools.partialmethod()‎ واصفًا يتصرّف مثل كائنات partial، إلّا أنّه مُصمّم ليُستخدم كتعريف تابع (method definition) عوضًا عن أن يكون قابلا للاستدعاء (callable) مُباشرة. البنية العامة functools.partialmethod(func, *args, **keywords) المعاملات func واصفٌ أو كائن قابل للاستدعاء (تُعامل الكائنات التي تجتمع فيها الصّفتان على أنّها واصفات، مثل الدّوال). عندما يكون func واصفًا (مثل دالّة بايثون عاديّة، أو الدّالة classmethod()‎، أو الدّالة staticmethod()‎، أو نسخة أخرى من partialmethod)، فستُفوّض استدعاءات الخاصيّة ‎__get__‎ إلى الواصف المنشأ، وسيُعاد كائن partial كنتيجة. عندما يكون func ...

الوحدة weakref‎ في بايثون

تتيح وحدة wekref إنشاء إشارات ضعيفة weak references للكائنات. سنستخدم مصطلح الكائن المشار إليه للتعبير عن الكائن الذي يُشار إليه بإشارة ضعيفة. لا تكون الإشارة الضعيفة إلى كائن معيّن كافية للإبقاء عليه، فعندما لا تبقى إلا الإشارات الضعيفة إلى الكائن المشار إليه، فلا يوجد ما يمنع مجموعة garbage من تدمير الكائن المشار إليه وإعادة استخدام الذاكرة التي يشغلها لأمر آخر. ولكن إلى حين تدمير الكائن فإنّ بإمكان الإشارة الضعيفة أن تعيد الكائن حتى في حال عدم وجود أي إشارات قوية ...

دمج التوابع (Inline Methods)

المشكلة أن يكون محتوى التابع (method body) بسيطًا وواضحًا أكثر من التابع بحدِّ ذاته، ويمكن عندئذٍ الاستغناء عنه. الحل نقل الشيفرة الموجودة في التابع (محتوى التابع) إلى مواقع استدعائه، وحذف التابع برمته إذ لا داعي له. مثال قبل إعادة التصميم نلاحظ أن محتوى التابع moreThanFiveLateDeliveries()‎ واضحٌ وبسيطٌ لدرجةٍ تجعل الاستغناء عنه ممكنًا: في لغة Java: class PizzaDelivery { //... int getRating() { return moreThanFiveLateDeliveries() ? 2 : 1; } boolean moreThanFiveLateDeliveries() { ...

كائنات UserString في بايثون

يعدّ UserString صنفًا يغلّف السلاسل النصية في بايثون، ولكن الحاجة إلى هذا الصنف أصبحت محدودة نظرًا لإمكانية التفريع المباشر من الصنف str، ولكن التعامل مع هذا الصنف أسهل بسبب إمكانية الوصول إلى السلسلة النصية الضمنية كخاصية. البنية العامة class collections.UserString(seq) يحاكي هذا الصنف السلاسل النصية العادية في بايثون، ويجري الاحتفاظ بمحتويات النسخة في سلسلة نصية عادية يمكن الوصول إليها عن طريق خصائص نسخ الصنف UserString. تُسند محتويات النسخة بادئ الأمر إلى نسخة من المعامل seq. يمكن أن يكون المعامل seq ...

الصنف pickle.Unpickler()‎ في بايثون

يستخدم هذا الصنف ملفًّا ثنائيًا يقرأ منه تدفق البيانات المسلسلة. يجري الكشف عن رقم البروتوكول المستخدم تلقائيًا؛ لذا لا حاجة لأي معامل لتحديده. البنية العامة class pickle.Unpickler(file, *, fix_imports=True, encoding="ASCII", errors="strict") ‎المعاملات file يجب أن يمتلك المعامل file تابعين، الأول هو تابع read()‎ والذي يأخذ معاملًا عدديًا، وتابع readline()‎ والذي لا يحتاج إلى أيّ معاملات. يجب أن يعيد كلا المعاملين كائنات bytes، ولهذا يمكن أن يكون file كائن ملف مخزّنًا على القرص الصلب ومفتوحًا للقراءة الثنائية، أو كائن io.BytesIO أو ...

الصنف wsgiref.handler.IISCGIHandler‎‎ في بايثون

هذا الصنف هو بديل خاص للصنف CGIHandler، ويستخدم لنشر التطبيقات على مخدّم الويب IIS الخاص بمايكروسوفت دون الحاجة إلى ضبط الخيار allowPathInfo في الإعدادات (في الإصدار 7 وما بعده من IIS) أو في قاعدة البيانات الداخلية metabase في الخيار allowPathInfoForScriptMappings (في الإصدر 6 وما قبله من IIS). يعطي مخدّم IIS افتراضيًا متغير PATH_INFO يقوم بمضاعفة المتغير SCRIPT_NAME في الواجهة، الأمر الذي يتسبب في حدوث مشاكل بالنسبة لتطبيقات WSGI التي ترغب في استخدام التوجيه routing؛ لذا يتخلص هذا المعالج من أي ...

الصنف datetime.tzinfo()‎ في بايثون

هذا الصنف هو صنف أساسي مجرّد abstract base class، وهذا يعني أنّه لا يمكن إنشاء نسخة منه بصورة مباشرة، بل يجب اشتقاق صنف فرعي منه يتضمّن (على الأقل) توابع tzinfo القياسية التي ستُستخدم من طرف توابع الصنف datetime. تقدّم وحدة datetime الصنف timezone وهو صنف فرعي محدّد concrete بسيط من الصنف tzinfo، يمكن عن طريقه تمثيل المناطق الزمنية باستخدام مقدار إزاحة ثابت عن التوقيت العالمي المنسّق، مثل التوقيت العالمي المنسّق نفسه، أو توقيتي EST و EDT في أمريكا الشمالية. يمكن ...

الدالة itertools.zip_longest()‎ في بايثون

تعيد الدّالة itertools.zip_longest()‎ مُكرّرًا يُركّب العناصر من كلّ كائن من الكائنات القابلة للتّكرار المُعطاة. إن كانت الكائنات القابلة للتّكرار غير مُتساويّة في الطّول، فستُستخدم قيمة لملء الفراغات. يُكمل التّكرار إلى أن تنتهي قيم أطول كائن من الكائنات القابلة للتّكرار. البنية العامة itertools.zip_longest(*iterables, fillvalue=None) المعاملات iterables الكائنات القابلة للتّكرار المُراد تركيبها. fillvalue القيمة التي ستُملؤ بها الفراغات. إن لم تُعيّن قيمة للمُعامل فالقيمة الافتراضيّة تكون القيمةَ None. القيمة المعادة مُكرّر يُعيد صفوفًا تُركّب عناصرها من عناصر الكائنات القابلة للتّكرار المُعطاة، ويملؤ ...

التابع float.fromhex()‎ في بايثون

هذا التابع هو تابع صنف (Class method) يعيد العدد العشري الذي يمكن تمثيله باستخدام السلسلة النصية التي تتضمن الصيغة الست عشرية. البنية العامة x.fromhex() المعاملات s وهو عبارة عن سلسلة نصية تتضمن القيمة الست عشرية المراد تمثيلها بصيغة العدد العشري، وتأخذ القيمة الست عشرية الصيغة التالية: [sign] ['0x'] integer ['.' fraction] ['p' exponent] الإشارة sign هنا اختيارية وتأخذ القيمتين + أو -، أما العدد الصحيح integer والكسر fraction فهما سلسلتان نصيتان تضمّان أعدادًا بالصيغة الست عشرية، والأس هو عدد عشري يمكن ...

كائنات UserList في بايثون

يعدّ UserList صنفًا يغلّف القوائم في بايثون، ويعدّ صنفًا أساسيًا مفيدًا لإنشاء أصناف شبيهة بالقوائم خاصّة بالمستخدم، والتي يمكن الوراثة منها وإعادة تعريف توابعها وإضافة توابع أخرى جديدة، وهكذا يمكن إضافة عمليات جديدة على القوائم. أصبحت الحاجة إلى هذا الصنف محدودة نظرًا لإمكانية التفريع المباشر من القوائم في بايثون، لكن التعامل مع هذا الصنف أسهل بسبب كون إمكانية الوصول إلى القائمة الضمنية كخاصية. البنية العامة class collections.UserList([list]) يحاكي هذا الصنف القوائم العادية في بايثون، ويجري الاحتفاظ بمحتويات النسخة في قائمة ...

الصنف ZipInfo‎‎ في بايثون

يستخدم هذا الصنف لعرض المعلومات الخاصّة بعضو من أعضاء ملف الأرشيف. يعيد التابعان getinfo()‎ و infolist()‎ في كائنات ZipFile نسخًا من هذا الصنف. لن تحتاج في أغلب الأحيان إلى إنشاء نسخة من هذا الصنف بنفسك، بل ستستخدم النسخ التي تنشئها الوحدة zipfile. البنية العامة class zipfile.ZipInfo(filename='NoName', date_time=(1980, 1, 1, 0, 0, 0)) ‎المعاملات filename الاسم الكامل لعضو الأرشيف. date_time يجب أن يكون هذا المعامل صفًّا يتضمن ستة حقول تمثّل الوقت الذي جرى فيه آخر تعديل للملف. راجع قسم خصائص ZipInfo ...

الصنف ZipInfo‎‎ في بايثون

يستخدم هذا الصنف لعرض المعلومات الخاصّة بعضو من أعضاء ملف الأرشيف. يعيد التابعان getinfo()‎ و infolist()‎ في كائنات ZipFile نسخًا من هذا الصنف. لن تحتاج في أغلب الأحيان إلى إنشاء نسخة من هذا الصنف بنفسك، بل ستستخدم النسخ التي تنشئها الوحدة zipfile. البنية العامة class zipfile.ZipInfo(filename='NoName', date_time=(1980, 1, 1, 0, 0, 0)) ‎المعاملات filename الاسم الكامل لعضو الأرشيف. date_time يجب أن يكون هذا المعامل صفًّا يتضمن ستة حقول تمثّل الوقت الذي جرى فيه آخر تعديل للملف. راجع قسم خصائص ZipInfo ...

سحب متن المُنشِئ لأعلى (Pull Up Constructor Body)

المشكلة تحتوي الأصناف الفرعية على مُنشِئات لها شيفرة متطابقة في أغلبها. الحل إنشاء مُنشئ صنف أب ونقل الشيفرة المماثلة في الأصناف الفرعية إليه. استدعاء مُنشئ الصنف الأب في مُنشِئات الصنف الفرعي. مثال قبل إعادة التصميم احتواء الصنف الفرعي Manager المشتق من الصنف Employee على منشئ متطابق بنسبة كبيرة: في لغة Java: class Manager extends Employee { public Manager(String name, String id, int grade) { this.name = name; this.id = id; ...

عرض (500 السابقة | 500 التالية) (20 | 50 | 100 | 250 | 500).