نتائج البحث

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

الدالة 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; ...

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

يمثّل كائن TarInfo عضوًا واحدًا في كائن TarFile. يحفظ هذا الكائن جميع الخصائص المطلوبة في الملف (مثل نوع الملف، وحجمه، ووقت التعديل، والأذونات، ومالك الملف وغيرها)، إلى جانب أنّه يقدّم بعض التوابع المفيدة لتحديد نوع الملف، ولا يحتوي هذا الكائن على بيانات الملف. تعيد التوابع getmember()‎ و getmembers()‎ و gettarinfo()‎ كائنات TarInfo. البنية العامة الدالة البانية للصنف TarInfo: class tarfile.TarInfo(name="") خصائص كائنات TarInfo يمتلك كائن TarInfo الخصائص العامة التالية: TarInfo.name اسم عضو الأرشيف. TarInfo.size الحجم بالبايتات. TarInfo.mtime وقت آخر تعديل. ...

تعريف التوابع الدخيلة (Introduce Foreign Methods)

المشكلة الحاجة إلى تابعٍ غير موجودٍ في الصنف المساعد (utility class) ومن غير الممكن إضافته إلى ذلك الصنف. الحل إضافة التابع المطلوب إلى صنف العميل (client class) وتمرير كائنٍ (object) من الصنف المساعد إليه كوسيط (argument). مثال قبل إعادة التصميم يحتوي الصنف Report تابعًا باسم sendReport والذي يستخدم الصنف المساعد Date لإنشاء تاريخ اليوم التالي عبر إضافة القيمة 1 إلى اليوم الحالي، كما يلي: في لغة Java: class Report { //... void sendReport() { Date ...

تبديل التابع إلى كائن التابع (Replace Method with Method Object)

المشكلة وجود تابعٍ طويلٍ بالكثير من المتغيِّرات المحليّة (local variables) المتداخلة والتي تحول دون تطبيق تقنية الحل باستخراج التابع (extract method). الحل نقل التابع إلى صنفٍ (class) مستقلٍ بحيث تصبح متغيِّراته المحليّة حقولًا (fields) لهذا الصنف، وتقسيم التابع بعد ذلك إلى عدّة توابع أصغر في الصنف ذاته. مثال قبل إعادة التصميم نلاحظ وجود العديد من المتغيِّرات المحليّة في التابع price()‎ بالإضافة إلى عملياتٍ أخرى قد تكون طويلةً ومعقَّدة: في لغة Java: class Order { //... public double price() ...

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

يستخدم هذا الصنف ملفًّا يكتب فيه تدفق البيانات المسلسلة. البنية العامة class pickle.Pickler(file, protocol=None, *, fix_imports=True) ‎ المعاملات file يجب أن يمتلك كائن الملفّ تابع write()‎ يستقبل معامل بايتات واحدًا فقط؛ لهذا يمكن أن يكون ملفًّا مخزّنًا في القرص الصلب مفتوحًا لكتابة البيانات الثنائية، أو نسخة من io.BytesIO، أو أي كائن مخصّص آخر يطابق هذه الشروط. protocol معامل اختياري، وهو عدد صحيح يُعلم المُسلسِل باستخدام البرتوكول المحدّد بالرقم المعطى، والبروتوكولات المدعومة هي من 0 إلى قيمة الثابت HIGHEST_PROTOCOL. * معامل ...

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

يعيد التابع سلسلة نصية تمثّل التاريخ بصيغة ISO 8601. البنية العامة isoformat(sep='T', timespec='auto') المعاملات sep معامل اختياري يأخذ القيمة الافتراضية 'T' ويمثّل فاصلًا يتكوّن من حرف واحد يوضع بين جزئي الوقت والتاريخ في النتيجة المعادة. timespec يحدّد المعامل الاختياري timespec عدد المكوّنات الإضافية التي سيتضمّنها كائن الوقت (القيمة الافتراضية هي 'auto')، ويمكن للمكونات أن تكون واحدة ممّا يلي: 'auto': مشابه للمكون 'second' إن كانت أجزاء الثانية مساوية للصفر، وإلا فإنّه مشابه للمكوّن 'microseconds'. 'hours': تضمين الساعة بهيئة رقمين HH. 'minutes': ...

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

تطبّق وحدة pickle بروتوكولات ثنائية لغرض سَلسلَة وإلغاء سَلسَلَة بنية كائنات بايثون. تطلق تسمية Pickling على العملية التي يتحوّل فيها تسلسل هرمي لكائن بايثون إلى تدفق بايتات byte stream، وتطلق تسمية Unpickling على العملية العكسية والتي يتحوّل فيها تدفّق بايتات (من ملف ثنائي أو كائن شبيه بالبايتات) إلى تسلسل هرمي لكائن بايثون. تحمل هاتان العمليتان (Pickling و Unpickling) أسماءً أخرى مثل السَلسَلَة "serialization"، والترتيب "marshalling" (ليس المقصود هنا وحدة marshal) والتسطيح "falttening". سنستخدم مصطلحي السلسلة وإلغاء السلسلة في هذا التوثيق ...

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

يستخدم هذا الصنف لإنشاء تقويم بهيئة HTML. البنية العامة calendar.HTMLCalendar(firstweekday=0) المعاملات firstweekday المعامل firstweekday هو عدد صحيح يحدّد اليوم الأول في الأسبوع. يمثّل العدد 0 يوم الإثنين (وهو القيمة الافتراضية) والعدد 6 هو يوم الأحد. توابع الصنف HTMLCalendar تقدّم نسخ الصنف HTMLCalendar التوابع التالية: التابع ‎formatmonth()‎ يعيد التابع تقويم الشهر المعطى بصيغة جدول HTML. التابع ‎formatyear()‎ يعيد التابع تقويم السنة المعطاة على هيئة جدول HTML. التابع ‎formatyearpage()‎ يعيد التابع تقويم السنة المعطاة على هيئة صفحة HTML كاملة. خصائص الصنف HTMLCalendar ...

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

تتضمّن هذه الوحدة أنواع بيانات متخصّصة بالحاويات container وتقدّم بدائل للحاويات الداخلية dict و list و set و tuple. تقدّم هذه الوحدة الكائنات التالية: namedtuple دالة مولِّدة factory function لإنشاء أصناف فرعية من صفٍّ يتضمن حقولًا مسمّاة deque حاوية شبيهة بالقوائم تمتاز بأدائها السريع في إضافة العناصر وحذفها في كلا الطرفين. ChainMap صنف شبيه بالقواميس يستخدم لإنشاء عرض منفرد لعمليات ربط mapping متعددة Counter صنف فرعي من الصنف dict الهدف منه عدّ الكائنات القابلة للتقطيع hashable OrderedDict صنف فرعي من ...

تبديل الشرطيات بالتعدديّة الشكليّة (Replace Conditional with Polymorphism)

المشكلة وجود شروط تنفِّذ إجراءات مختلفة اعتمادًا على نوع الكائن أو خصائصه. الحل إنشاء أصناف فرعية مطابقة لفروع البنية الشرطية. ويُنشأ فيها تابع مشترك وتُنقل إليه الشيفرة البرمجية من الفرع المقابل من الشرطية. ثم تُستبدل البنية الشرطية باستدعاء التابع المناسب. وينتج عن ذلك تنفيذ سليم يتحقق من خلال التعدديّة الشكليّة اعتمادًا على صنف الكائن. مثال قبل إعادة التصميم الصنف Bird يحتوي على التابع getSpeed الذي باستعمال البنية الشرطية switch من النوع type لحساب السرعة بناءً على قيمته: في لغة Java: ...

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

SQLite هي مكتبة مكتوبة بلغة C تتيح إنشاء قواعد بيانات على القرص الصلب ولا تحتاج إلى خادوم خاص لمعالجتها، وتتيح الوصول إلى قاعدة البيانات باستخدام نسخة غير قياسية من لغة الاستعلام SQL. تستخدم بعض التطبيقات والبرامج قاعدة بيانات SQLite لتخزين بياناتها الداخلية، ويمكن إنشاء نماذج أولية من التطبيق باستخدام SQLite ثم نقل الشيفرة إلى قواعد بيانات أكبر مثل PostgreSQL أو Oracle. كُتبت وحدة sqlite3 من قبل Gerhard Häring، وتقدّم واجهة SQL متوافقة مع معايير DB-API 2.0 الموصوفة في PEP 249. ...

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

تستخدم الدالة الداخلية dir()‎ لمعرفة الأسماء التي تعرّفها الوحدة، وتعيد هذه الدالة قائمة مرتّبة من السلاسل النصية: >>> import fibo, sys >>> dir(fibo) ['__name__', 'fib', 'fib2'] >>> dir(sys) ['__displayhook__', '__doc__', '__excepthook__', '__loader__', '__name__', '__package__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_debugmallocstats', '_getframe', '_home', '_mercurial', '_xoptions', 'abiflags', 'api_version', 'argv', 'base_exec_prefix', 'base_prefix', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_info', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getobjects', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval', 'gettotalrefcount', 'gettrace', 'hash_info', 'hexversion', 'implementation', 'int_info', 'intern', 'maxsize', ...

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

تقدّم هذه الوحدة وسيلة لاستخدام خوارزمية طابور الكومة heap queue والتي تعرف كذلك بخوارزمية طابور الأولوية priority queue. الكومات Heaps هي مشجّرات ثنائية binary trees تمتلك كل عقدة أبوية parent node فيها قيمة تكون أصغر من أو مساوية لأي قيمة أخرى في العقد البنوية children. تستخدم الوحدة مصفوفات تكون فيها heap[k] <= heap[2*k+1]‎ و heap[k] <= heap[2*k+2]‎ لجميع قيم k، ويبدأ عدّ العناصر من الصفر. ولغرض المقارنة، تُعدّ العناصر غير الموجودة ما لا نهائية. أما أهمّ خصائص الكومة هي أنّ ...

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

تعيد الدّالة itertools.groupby()‎ مُكرّرًا يُعيد مفاتيح مُتسلسلة ومجموعات (groups) تنتمي إلى هذه المفاتيح من الكائن القابل للتّكرار المعطى. العمليّة التي تقوم بها الدّالة مُشابهة لكيفيّة عمل المُرشّح uniq في أنظمة Unix. إذ تُولّد نقطة توقّف (break) أو مجموعة جديدة في كلّ مرّة تتغيّر فيها قيمة الدّالةِ المفتاح (لذا يجب في الغالب ترتيب البيانات باستعمال نفس الدّالة المفتاح). وطريقة العمل هذه تختلف عن طريقة عمل عبارة GROUP BY في لغة SQL التي تجمع العناصر المُشتركة بغضّ النّظر عن ترتيب البيانات. البنية ...

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

يمثّل كائن time الوقت (المحلّي) في يوم غير محدّد، وهو عرضة للتعديل بواسطة كائن tzinfo. البنية العامة class datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0) المعاملات جميع المعاملات في عبارة إنشاء الصنف time اختيارية، وتأخذ القيمة الافتراضية 0، ويأخذ المعامل tzinfo القيمة الافتراضية None. يمكن أن تكون قيم جميع المعاملات (باستثناء المعامل tzinfo) أعدادًا صحيحة وضمن المديات التالية: ‎0 <= hour < 24‎ ‎0 <= minute < 60‎ ‎0 <= second < 60‎ ‎0 <= microsecond < 1000000‎ ‎fold in ...

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

صنف متفرّع من الصنف الداخلي dict يعيد تعريف override تابع واحد ويضيف متغير نسخة واحدًا قابلًا للكتابة. البنية العامة ‎class collections.defaultdict([default_factory[, ...]]) تعيد الدالة البانية لهذا الصنف كائنًا جديدًا شبيهًا بالقاموس، وdefaultdict هو صنف متفرّع من الصنف الداخلي dict يعيد تعريف override تابع واحد ويضيف متغير نسخة واحدًا قابلًا للكتابة. أما بقية التوابع فهي مماثلة للصنف الرئيسي ولن توثّق هنا. يحدّد المعامل الأول القيمة الابتدائية للخاصية default_factory ويأخذ هذا المعامل القيمة الافتراضية None. أما بقية المعاملات (ومن ضمنها المعاملات المفتاحية) ...

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

يمثّل كائن time الوقت (المحلّي) في يوم غير محدّد، وهو عرضة للتعديل بواسطة كائن tzinfo. البنية العامة class datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0) المعاملات جميع المعاملات في عبارة إنشاء الصنف time اختيارية، وتأخذ القيمة الافتراضية 0، ويأخذ المعامل tzinfo القيمة الافتراضية None. يمكن أن تكون قيم جميع المعاملات (باستثناء المعامل tzinfo) أعدادًا صحيحة وضمن المديات التالية: ‎0 <= hour < 24‎ ‎0 <= minute < 60‎ ‎0 <= second < 60‎ ‎0 <= microsecond < 1000000‎ ‎fold in ...

تقديم الكائن الفارغ (Introduce Null Object)

المشكلة تؤدي إعادة بعض التوابع للقيمة null بدلًا من الكائنات الحقيقية إلى امتلاء الشيفرة البرمجية بالعديد من نقاط التحقق من القيمة null. الحل إعادة كائن فارغ يظهر السلوك الافتراضي بدلًا من null. مثال قبل إعادة التصميم وجودة نقطة تحقق شرطية من الكائن customer لاتخاذ إجراء مناسب إن كانت قيمته null: في لغة Java: if (customer == null) { plan = BillingPlan.basic(); } else { plan = customer.getPlan(); } في لغة C#‎: if (customer == null) { plan = BillingPlan.Basic(); } else { ...

بنية اللغة

تُقرأ شيفرات بايثون بواسطة المحلّل parser. مدخلات المحلّل هي تدفّق من العلامات tokens التي ينشئها محلل المفردات lexical analyzer. يصف هذا القسم طريقة تقسيم ملفات بايثون إلى علامات بواسطة محلل المفردات. بنية السطر تقسم شيفرة بايثون إلى نوعين من الأسطر هما الأسطر المنطقية والأسطر الفيزيائية. الأسطر المنطقية Logical lines ينتهي السطر المنطقي بعلامة السطر الجديد NEWLINE، ولا يمكن للعبارات أن تتجاوز حدود السطر المنطقي إلا إذا كانت صيغتها تسمح بذلك. ويتألف السطر المنطقي من سطر فيزيائي واحد أو أكثر وبالاعتماد ...

التابع str.format_map()‎ في بايثون

يجري هذا التابع عمليات التنسيق على السلسلة النصية بواسطة قاموس. البنية العامة x.format_map() المعاملات mapping قاموس تستخدمه الدالة لتنسيق السلسلة النصية. القيمة المعادة يعيد هذا التابع السلسلة النصية بعد إجراء عمليات التنسيق عليها بواسطة القاموس الممرّر في الوسائط. يشبه هذا التابع في عمله التابعَ str.format(**mapping)‎، باستثناء أنّ التابع str.format_map()‎ يستخدم المعامل mapping مباشرة ولا ينسخه إلى قاموس جديد. ملاحظة: هذا التابع جديدٌ في الإصدار 3.2 من اللغة. أمثلة يستخدم المثال التالي قاموسًا لتنسيق السلسلة النصية: >>> name = {'first': 'Samir', ...

if في بايثون

تقدّم بايثون عبارة if للتحكم المشروط بتدفق الشيفرة، وتأخذ الصيغة التالية: if expression: statement فعلى سبيل المثال: >>> x = int(input("Please enter an integer: ")) Please enter an integer: -16 >>> if x < 0: ...     x = 0 ...     print('Negative changed to zero') Negative changed to zero عبارة elif يمكن استخدام عبارة elif (وهي اختصار لعبارة 'else if' ) عند الحاجة إلى التحقق من شروط إضافية، وكما هو موضح في المثال التالي: >>> x = int(input("Please enter an integer: ")) Please ...

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