نتائج البحث

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

التابع singleton_method_undefined في الصنف BasicObject في روبي

يُستدعى التابع singleton_method_undefined كرد نداءٍ (callback) في كل مرة يكون فيها تابع منفرد (singleton method) غير مُعرَّف (undefined) في المُستقبِل (receiver). البنية العامة singleton_method_undefined(symbol) أمثلة مثال على استخدام التابع singleton_method_undefined: module Chatty def Chatty.singleton_method_undefined(id) puts "Undefining #{id.id2name}" end def Chatty.one() end class << self undef_method(:one) end end يظهر هذا المثال عند تنفيذه المخرجات التالية: Undefining one انظر أيضًا التابع singleton_method_added: يُستَدعى هذا التابع كرد نداءٍ (callback) في كلِّ مرة يُضاف فيها تابع منفرد (singleton method) ...

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

يُطلق الاستثناء NameError عندما يكون الاسم المعطى غير صالح أو غير مُعرّف. انظر إلى السطر البرمجي التالي: puts foo سيُطلق عند تنفيذه الاستثناء التالي: NameError: undefined local variable or method `foo' for main:Object أسماء الثوابت يجب أن تبدأ بحرف كبير، لذلك فالشيفرة البرمجية التالي: Integer.const_set :answer, 42 ستطلق الاستثناء NameError: NameError: wrong constant name answer توابع الصنف العامة (Public Class Methods) new ينشئ استثناءً جديدًا من النوع NameError. توابع النسخة العامة (Public Instance Methods) local_variables يعيد قائمة بأسماء المتغيرات المحلية المُعرّفة حيث أُطلٍق ...

اختلال الشيفرات ومشاكلها (Code Smells)

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

التابع Method.arity‎ في روبي

يعيد التابع arity مؤشرًا يمثل لعدد الوسائط المقبولة من قبل التابع (method) الذي استُدعي معه. يعيد عددًا صحيحًا غير سالب للتوابع التي تقبل عددًا محددًا من الوسائط. بالنسبة لتوابع روبي التي تأخذ عددًا متغيرًا من الوسائط، يًعاد العدد ‎-n-1، حيث n هو عدد الوسائط المطلوبة. الوسائط المسماة (Keyword arguments) ستُعد وسيطاً إضافيًا واحدًا، وسيكون ذلك الوسيط إلزاميًّا إن كان أيٌّ من الوسائط المسماة كذلك. بالنسبة للتوابع المكتوبة بلغة C، سيُعاد العدد ‎-1 إن كانت تلك التوابع تأخذ عددًا متغيرًا من الوسائط. ...

التابع Object.public_method في روبي

يبحث التابع public_method عن التوابع العامة فقط بشكل مشابه لعمل التابع method. البنية العامة public_method(sym) → method المعاملات sym رمزٌ يشير إلى اسم التابع المراد البحث عنه. القيم المعادة يُعاد التابع الموافق للاسم sym من الكائن المُعطى، أو يُرمى الاستثناء NameError إذا لم توجد توابع موافقة لهذا الاسم. انظر أيضًا التابع method: يبحث عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا. التابع public_send: يَستدعي التابع المعرَّف برمزٍ محدَّدٍ ويُنفَّذه تلقائيًا مع تمرير أي معاملاتٍ معطاة. التابع send: يَستدعي التابع ...

التابع singleton_method_removed في الصنف BasicObject في روبي

يُستَدعى التابع singleton_method_removed كرد نداءٍ (callback) في كل مرة يُحذف فيها تابع منفرد (singleton method) من المُستقبِل (receiver). البنية العامة singleton_method_removed(symbol) أمثلة مثال على استخدام التابع singleton_method_removed: module Chatty def Chatty.singleton_method_removed(id) puts "Removing #{id.id2name}" end def self.one() end def two() end def Chatty.three() end class << self remove_method :three remove_method :one end end يظهر هذا المثال عند تنفيذه المخرجات التالية: Removing three Removing one ...

التابع singleton_method_added في الصنف BasicObject في روبي

يُستَدعى التابع singleton_method_added كرد نداءٍ (callback) في كلِّ مرة يُضاف فيها تابع منفرد (singleton method) جديد إلى المُستقبِل (receiver). البنية العامة singleton_method_added(symbol) أمثلة مثال على استخدام التابع singleton_method_added: module Chatty def Chatty.singleton_method_added(id) puts "Adding #{id.id2name}" end def self.one() end def two() end def Chatty.three() end end يظهر هذا المثال عند تنفيذه المخرجات التالية: Adding singleton_method_added Adding one Adding three انظر أيضًا التابع singleton_method_removed: يُستَدعى هذا التابع كرد نداءٍ ...

التابع Object.methods في روبي

يُعيد التابع methods قائمةً بالتوابع العامَّة والمحميَّة للكائن المعطى. تتضمن هذه القائمة جميع التوابع المتاح الوصول إليها في أسلاف (ancestors) الكائن. إذا مُرِّرت القيمة false للمعامل الاختياري الوحيد في التابع، فسيُعيد مصفوفةً من توابع الكائن (أو عددًامحدَّدًا من الكائنات) المنفردة (singleton) العامَّة والمحميَّة. لن تحتوي هذه المصفوفة على توابع الوحدات المُضمَّنة في الكائن (أو عددًا محدَّدًا من الكائنات). البنية العامة methods(regular=true) → array المعاملات regular معامل اختياري يأخذ القيمة true (الافتراضيَّة) أو flase. القيم المعادة تُعاد مصفوفةٌ تحوي جميع توابع ...

استخدام التعليمة Switch

توصيف المشكلة وجود تركيبٍ معقَّدٍ لتعليمة switch أو عدّة تعليمات if متسلسلة. أسبابها ما يميِّز البرمجة كائنيّة التوجّه (OO) هو اعتمادها النادر على المعاملين switch و case، إذ تُوزَّع شيفرة switch بمواقع مختلفة من البرنامج بدلًا من تجمعيها في تعليمة switch واحدةٍ، وعند إضافة شرطٍ جديدٍ عليك إيجاد كافّة شيفرات switch لتعديلها، وكقاعدة عامّة: وجود تعليمة switch يعني أن عليك البدء بالتفكير بمبدأ التعدديّة الشكليّة (polymorphism). وما الحل؟ عزل تعليمة switch ووضعها بالصنف الصحيح عبر إنشاء صنفٍ (class) ونقل التابع ...

تكرار الشيفرات (Duplicate Code)

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

التابع Module.method_undefined‎ في روبي

غير موثَّق بعد. انظر أيضا التابع method_removed: يستدعى كرد نداء في كل مرة يُزال تابع نسخة (instance method) من المُستقبِل (receiver). التابع method_defined?‎: يتحقق إن كان التابع المعطى مُعرّفًا في الوحدة أو الصنف. التابع method_added: يُستدعى في كل مرة يُضاف تابع نسخة (instance method) إلى المُستقبِل (receiver). مصادر قسم التابع method_undefined‎ في الصنف Module‎ في توثيق روبي الرسمي.

التابع UnboundMethod.arity‎ في روبي

يعيد المعامل arity مؤشرًا لعدد الوسائط المقبولة من قبل تابع. البنية العامة arity → integer‎ القيمة المعادة يعاد عدد صحيحً غير سالب للتوابع التي تأخذ عددًا محددًا من الوسائط. بالنسبة لتوابع روبي التي تأخذ عددًا متغيرًا من الوسائط، يًعاد العدد ‎-n-1، حيث n هو عدد الوسائط المطلوبة. الوسائط المسماة (Keyword arguments) ستُعيد وسيطًا إضافيًا واحدًا، وسيكون ذلك الوسيط إلزاميًّا إن كان أيٌّ من الوسائط المسماة كذلك. بالنسبة للتوابع المكتوبة بلغة C، سيُعاد العدد ‎-1 إن كان استدعاء تلك التوابع يأخذ ...

التابع Module.define_method‎ في روبي

يعرّف التابع define_method تابع نُسخة (instance method) في المُستقبِل (receiver). في حال تمرير كتلة، فستُستخدم كجسم (body) للتابع. تُقيّم هذه الكتلة باستخدام التابع instance_eval، وهو أمر قد يكون مُشكلًا على البعض، لأن define_method خاصة. (لهذا سنحتال ونستخدم التابع send في المثال التالي.) البنية العامة define_method(symbol, method) → symbol define_method(symbol) { block }→ symbol‎ المعاملات symbol‎ رمز. method‎ تابع نُسخة. يمكن أن يكون من النوع Proc أو Method أو UnboundMethod. القيمة المعادة يعاد رمزٌ. أمثلة مثال على استخدام التابع define_method‎: class A ...

التابع Method.owner‎ في روبي

يعيد التابع owner الصنف أو الوحدة (module) التي تُعرِّف الكائن Method الذي استُدعي معه. البنية العامة owner → class_or_module‎ القيمة المعادة يعاد الصنف أو الوحدة التي تُعرِّف الكائن Method المعطى. انظر أيضا التابع original_name: يعيد الاسم الأصلي للتابع الذي استُدعي معه. التابع parameters: يعيد معلومات عن وسائط التابع الذي استُدعي معه. مصادر قسم التابع owner‎ في الصنف Method‎ في توثيق روبي الرسمي.

التابع UnboundMethod.inspect‎ في روبي

يعيد inspect اسم التابع الأصلي (underlying method). البنية العامة inspect→ string‎ القيمة المعادة يعاد اسم التابع الأصلي المعطى. أمثلة مثال على استخدام التابع inspect‎: "cat".method(:count).inspect #=> "#<Method: String#count>"‎ انظر أيضًا التابع hash: يعيد القيمة hash المقابلة التابع الحر الذي استُدعي معه. التابع name: يعيد اسم التابع الحر الذي استدعي معه. مصادر قسم التابع inspect‎ في الصنف UnboundMethod‎ في توثيق روبي الرسمي.

الارتباط الوثيق غير المناسب (Inappropriate Intimacy)

توصيف المشكلة استخدام أحد الأصناف (class) الحقولَ (fields) والتوابعَ (methods) الداخليّة لصنفٍ آخر بكثرة. أسبابها تعاملُ الأصناف (classes) مع بعضها بكثرةٍ، وهذا ما يجب أن تكون على درايةٍ به، إذ إنّ التصميم الجيّد يشترط الحدَّ من التواصل فيما بينها ما أمكن، وهذا سيسهِّل صيانتها (maintenace) وإعادة استخدامها (reuse). وما الحل؟ نقلُ التوابع (move methods) ونقل الحقول (move fields) من الصنف الحاليّ إلى الصنف الآخر الذي تُستخدَم فيه، وهو الحلُّ الأبسط عندما لا يحتاج الصنف الأول تلك الحقول والتوابع المنقولة. استخراج ...

الحقول المؤقتة (Temporary Fields)

توصيف المشكلة تحتوي الحقول المؤقَّتة على قيمٍ (وتُستخدَم وفقًا لها في الكائنات [objects]) ضمن شروطٍ مُحدَّدة، وتبقى فارغةً عند عدم تحقٌّق تلك الشروط. أسبابها تُخصَّصُ الحقول المؤقتة لاستخدامها في الخوارزميات التي تتطلَّب عددًا كبيرًا من المُدخلات (inputs)، فبدلًا من إنشاء الكثير من المعاملات في التابع (method parameters) يلجأ المُبرمِج لإنشاء حقولٍ مؤقَّتة لاحتواء البيانات المطلوبة في الصنف (class)، وبهذا فإنّ استخدام تلك الحقول لا يتعدّى تنفيذَ الخوارزميّة المُحدَّدة (ولا وظيفة أخرى لها خارج ذلك النطاق)، ويجعل وجودُ تلك الحقول من ...

التابع Module.protected_method_defined?‎ في روبي

يتحقق التابع protected_method_defined?‎ إن كان التابع المحمي (protected) المعطى معرفًا في الوحدة (أو الوحدات المُتضمنة فيه، أو أسلافه إن كان صنفًا). البنية العامة protected_method_defined?(symbol)→ true or false protected_method_defined?(string)→ true or false‎ المعاملات symbol‎ رمز يمثل التابع. string‎ سلسلة نصية تمثل التابع. يحول هذا المعامل إن أعطي إلى رمز. القيمة المعادة تعاد القيمة true إن كان التابع المحمي المعطى معرفًا في الوحدة (أو الوحدات المُتضمنة فيه، أو أسلافه إن كان صنفًا). خلا ذلك، تعاد القيمة false. أمثلة مثال على استخدام التابع protected_method_defined?‎: module ...

القائمة الطويلة للمعاملات (Long Parameter List)

توصيف المشكلة وجود ما يزيد عن ثلاثة أو أربعة معاملات (parameters) مُمرَّرة للتابع (method). أسبابها قد تحدث هذه المشكلة عند دمج عدّة خوارزمياتٍ بنفس التابع (method)، إذ تُستخدَم المعاملات (parameters) الكثيرة لتحديد الخوارزمية التي ستُنفَّذ وآليّتها. أو قد تنتج المشكلة عن محاولة المبرمج أو المطوِّر لجعل الأصناف (classes) أكثر استقلاليةً عن بعضها البعض. فمثلًا: عند نقل الشيفرة التي تنشِئ الكائنات (objects) -اللازمة لأحد التوابع- من داخل التابع إلى الشيفرة التي تستدعي ذلك التابع سيتطلَّبُ تمرير تلك الكائنات إلى التابع كمعاملاتٍ ...

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

الصنف BasicObject هو الصنف الأب لجميع الأصناف في روبي، وهو صنف فارغ. يمكن استخدام الصنف BasicObject لإنشاء هرميات كائنية (object hierarchies) مستقلة عن الهرمية الكائنية للغة روبي، أو لإنشاء مغلفات الكائنات (proxy objects) مثل الصنف Delegator، أو حيث يجب تجنب إفساد مجال الأسماء (namespace pollution) من قبل توابع وأصناف روبي. لتجنب إفساد الصنف BasicObject للمستخدمين الآخرين، يجب إنشاء صنف فرعي من الصنف BasicObject تحت اسم مناسب بدلاً من تعديل BasicObject مباشرةً: class MyObjectSystem < BasicObject end لا يتضمَّن الصنف BasicObject الوحدة Kernel ...

التابع Object.to_enum في روبي

يُنشئ التابع enum_for نسخةً من الصنف Enumerator الذي يجري عملية عدٍّ (enumerate) وتكرار عبر استدعاء التابع المُمرَّر إليها مع كائنٍ محدَّد، وتمرير وسائط إن أعطيت. إذا مُرِّرت كتلة (block) إلى التابع، فستُستخدم لحساب حجم نسخة الصنف Enumerator دون الحاجة إلى تكرارها (ألقِ نظرة على التابع Enumerator.size). البنية العامة enum_for(method = :each, *args) → enum enum_for(method = :each, *args){|*args| block} → enum المعاملات method التابع المُمرَّر. القيمة الافتراضية لهذا المعامل هي: each:. args* الوسائط المراد تمريرها إلى التابع. args| block*| الكتلة ووسائطها ...

استخراج المتغيرات (Extract Variables)

المشكلة وجود تعبيرٍ (expression) معقِّد يصعُب فهمه. الحل وضع ناتج التعبير أو جزءٍ منه في متغيِّرات (variables) واضحةٍ تُسهِّل الفهم. مثال قبل إعادة التصميم نلاحظ وجود تعبيرٍ شرطيٍّ (conditional expression) معقَّدٍ وبعدّة أجزاء كما في الشيفرة الآتية: في لغة Java: void renderBanner() { if ((platform.toUpperCase().indexOf("MAC") > -1) && (browser.toUpperCase().indexOf("IE") > -1) && wasInitialized() && resize > 0 ) { // افعل شيئًا ...

سحب متن المُنشِئ لأعلى (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; ...

التخطيط الشمولي المفرط (Speculative Generality)

توصيف المشكلة وجود أصنافٍ (classes) أو توابعَ (methods) أو حقولٍ (fields) أو معاملاتٍ (parameters) غير مُستخدَمة في الشيفرة. أسبابها إنشاء عناصرَ إضافيّةٍ "قد" يحتاجها المبرمج مستقبلًا لميّزات يُخطِّط لها (وقد لا تُنفَّذ أصلًا)، وغير مستخدمةٍ بالوقت الحاليّ، مما يجعل الشيفرة أكثر صعوبةً بالفهم والدعم. وما الحل؟ هدم الهيكليّة الهرميّة (collapse hierarchy) لإزالة الأصناف المُجرَّدة (abstract classes) غير المُستخدَمة. دمج الأصناف (inline classes) للحدُّ من عمليات تفويض المهامّ (delegation) غير الضروريّة لصنفٍ آخر. دمج التوابع (inline methods) للتخلُّص من التوابع عديمة ...

التابع Object.enum_for في روبي

يُنشئ التابع enum_for نسخةً من الصنف Enumerator الذي يجري عملية عدٍّ (enumerate) وتكرار عبر استدعاء التابع المُمرَّر إليها مع كائنٍ محدَّد، وتمرير وسائط إن أعطيت. إذا مُرِّرت كتلة (block) إلى التابع، فستُستخدم لحساب حجم نسخة الصنف Enumerator دون الحاجة إلى تكرارها (ألقِ نظرة على التابع Enumerator.size). البنية العامة enum_for(method = :each, *args) → enum enum_for(method = :each, *args){|*args| block} → enum المعاملات method التابع الذي ستُطبَّق عليه العملية. القيمة الافتراضية لهذا المعامل هي: each:. args* الوسائط المراد تمريرها إلى التابع. args| ...

الأجزاء الفائضة (Dispensables)

وهي الأجزاء عديمة النفع في الشيفرة، وسيجعلُ التخلُّصُ منها الشيفرةَ نظيفةً يسيرة الفهم وأكثر فعاليّة، منها: التعليقات (comments) المشكلة: وجود الكثير من التعليقات في التوابع (methods) بهدف الشرح التفصيليّ للشيفرة. الحل: يكون الحل بناءً على الحالة المستعملة وهو: تقسيم التعبير الواحد إلى تعابيرَ فرعيّة (subexpressions) بالاعتماد على استخراج المتغيِّرات، أو عزل ذلك المقطع في تابعٍ (method) جديدٍ باسمٍ معبِّر، أو إعادة تسمية التابع (rename method) لاسمٍ يشرح ذاته بذاته، أو إضافة التأكيدات. تكرار  الشيفرة (duplicates) المشكلة: التشابه (أو التطابق المطلق) بين مقطعين من الشيفرة ...

المبالغة والإطالة (Bloaters)

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

المبالغة والإطالة (Bloaters)

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

التابع Module.method_added‎ في روبي

يُستدعَى التابع method_added في كل مرة يُضاف تابع نسخة (instance method) إلى المُستقبِل (receiver). البنية العامة method_added(method_name)‎ المعاملات method_name‎ اسم تابع النسخة. أمثلة مثال على استخدام التابع method_added‎: module Chatty def self.method_added(method_name) puts "Adding #{method_name.inspect}" end def self.some_class_method() end def some_instance_method() end end‎ ناتج تنفيذ هذا المثال هو: Adding :some_instance_method انظر أيضا التابع instance_methods: يعيد مصفوفة تحتوي على أسماء توابع النسخ (instance methods) العامة والمحمية (protected) في المستقبِل (receiver). التابع method_defined?‎: يتحقق إن كان التابع المعطى مُعرّفًا في ...

التابع Module.method_removed‎ في روبي

يستدعى التابع method_removed في كل مرة يُزال تابع نسخة (instance method) من المُستقبِل (receiver). البنية العامة method_removed(method_name)‎ المعاملات method_name‎ اسم تابع النسخة. أمثلة مثال على استخدام التابع method_removed‎: module Chatty def self.method_removed(method_name) puts "Removing #{method_name.inspect}" end def self.some_class_method() end def some_instance_method() end class << self remove_method :some_class_method end remove_method :some_instance_method end‎ ناتج تنفيذ هذا المثال هو: Removing :some_instance_method انظر أيضا التابع method_defined?‎: يتحقق إن كان التابع المعطى مُعرّفًا في الوحدة أو ...

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

كائنات الصنف Proc هي كتلٌ من الشيفرات البرمجية رُبطت إلى مجموعة من المتغيرات المحليَّة. حالما تُربط، يمكن استدعاء الشيفرة في سياقات مختلفة ويبقى الوصول متاحًا لتلك المتغيرات. def gen_times(factor) return Proc.new {|n| n*factor } end times3 = gen_times(3) times5 = gen_times(5) times3.call(12) #=> 36 times5.call(5) #=> 25 times3.call(times5.call(4)) #=> 60 توابع الصنف العامة (Public ...

Python/PEP

يعبر الاختصار PEP عن العبارة Python Enhancement Propsoal وتعني اقتراح تحسين في بايثون، وهو وثيقة تصميم تقدّم معلومات لمجتمع بايثون، أو تصف ميزة جديدة في بايثون أو عملياتها أو البيئة الخاصة بها. يجب أن يقدم اقتراح التحسين مواصفات تقنية موجزة ووافية للميزة مع شرح للمنطق الخاص بها. المرجع الصفحة المرجعية لاقتراحات التعديل

Python/macpath

أُلغيت هذه الوحدة في النسخة 3.7 وسيتم إزالتها نهائيا في الوحدة 3.8.

Python/array

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

Python/fileinput

تحوي هذه الوحدة على صنف مساعد وتوابع تسمح بتسريع كتابة حلقة للمرور على الدخل المعياري أو على قائمة من الملفات. ( إن كنت تريد قراءة ملف واحد أو الكتابة عليه فيُنصح باستخدام التابع open لهذا الغرض). الاستخدام النموذجي import fileinput for line in fileinput.input(): process(line)

Python/namedtuple

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

Python/tempfile

11.6. tempfile — توليد الملفات والمجلدات المؤقتة الشيفرة المصدرية تُنشئ هذه الوحدة ملفات ومجلدات مؤقتة، وتعمل على جميع المنصات المدعومة في بايثون، وتقدم الواجهات التالية TemporaryFile و NamedTemporaryFile و TemporaryDirectory و SpooledTemporaryFile  كواجهات عالية المستوى تدعم عملية تنظيف تلقائية ويمكن استخدامها كمدير سياق context manager، كما تقدم الوحدة تابعين mkstemp و mkdtemp منخفضي المستوى يحتاجان إلى التنظيف اليدوي بعد استخدامهما.

Python/filecmp

تعرف هذه الوحدة توابع لمقارنة الملفات والمجلدات مع العديد من الخيارات للمقايضة بين دقة المقارنة والزمن المستغرق لها، كما يمكن استخدام الوحدة difflib لمقارنة الملفات.

Python/os.path

يُرجى الحذف، أُنشأت خطأً.

while في بايثون

تستخدم عبارة while لتكرار عملية التنفيذ ما دام الشرط المقدّم إلى هذه العبارة صحيحًا، وتأخذ عبارة while الصيغة التالية: while expression: statement مثال: >>> a, b = 0, 1 >>> while b < 10: ...     print(b) ...     a, b = b, a+b ... 1 1 2 3 5 8 تستمر هذه العبارة في تكرار تنفيذ الشيفرة ما دام الشرط صحيحًا True، أما إذا كان نتيجة الشرط خطأً False (قد يحدث ذلك في الدورة الأولى من الحلقة) فستنتقل عملية التنفيذ إلى عبارة else في حال وجودها، وتوقف اللغة ...

Python/len

تعيد الدّالة len()‎ طول (أي عدد عناصر) كائن مُعيّن. البنية العامة len(s) المعاملات s الكائن المُراد الحصول على عدد عناصره، يُمكن أن يكون سلسلة نصيّة، أو بايتات، أو صفًّا، أو قائمة، أو مجالًا. أو يُمكن أن يكون تجميعًا مثل قاموس، أو مجموعة، أو مجموعة جامدة. القيمة المعادة طول الكائن المُعطى، والذي يكون عددًا صحيحًا يُمثّل عدد العناصر الموجودة في الكائن. أمثلة المثال التّالي يوضّح كيفيّة عمل هذه الدّالة: >>> len('ABC') # سلسلة نصيّة 3 >>> len([1, 2, 3]) # قائمة 3 >>> len((1, 2, ...

مفسر بايثون

تشغيل المفسر عادة ما يُنصَّب مفسِّر بايثون في المسار ‎/usr/local/bin/python3.6 في أنظمة يونكس، ويؤدّي وضع هذا المسار ضمن مسار البحث الخاصّ بصدفة يونكس (Unix shell) إلى إمكانية استدعاء مفسّر بايثون عن طريق كتابة الأمر التالي في الصدفة: python3.6 ملاحظة: في أنظمة يونكس، لا يستخدم الاسم python افتراضيًا لاستدعاء مفسّر بايثون في الإصدارات ‎3.x‎ من اللغة، وذلك لتجنّب حدوث أي تضارب مع مفسّر الإصدارات ‎2.x من اللغة. يمكن تحديد مسار مفسِّر بايثون أثناء عملية التثبيت، وعادة ما يُستخدم المسار التالي: ‎/usr/local/python كمسار ...

Python/shutil

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

Python/Examples

هذه الصفحة هي تجميع منظم ومرتب لأمثلة بلغة بايثون الاستثناءات تحتوي هذه الفقرة على أمثلة يصدر فيها استثناءات. الاستثناء FileNotFoundError تُصدره بعض التوابع القارئة للملفات عند عدم وجود الملف >>> f=open('D:\\file.txt') Traceback (most recent call last): File "<pyshell#123>", line 1, in <module> f=open('D:\\file.txt') FileNotFoundError: [Errno 2] No such file or directory: 'D:\\file.txt' الاستثناء KeyError  يصدر عند محاولة الوصول إلى عنصر عن طريق مفتاح غير موجود في القاموس >>> a=dict() >>> a["test"]="good" >>> print(a["no key"]) Traceback ...

الوحدات في بايثون

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

Python/pathlib

  pathlib — وحدة مسارات نظام الملفات كائنية التوجه تقدم هذه الوحدة أصنافًا تمثّل مسارات نظام التشغيل مع دلالات ملائمة لمختلف أنظمة التشغيل، وقد أُضيفت هذه الوحدة إلى بايثون في النسخة 3.4. تحتوي هذه الوحدة على صنفين يسمحان بالتعامل مع المسارات، أحدهما للتعامل مع المسارات بشكلها النصي PurePath والآخر للقيام بعمليات الدخل والخرج على الملفات والمجلدات التي تشير إليها المسارات. صنف المسارات النقية PurePath يقدم هذا الصنف عمليات نصّية على المسارات دون أي عمليات إدخال أو إخراج، أي أنه لا ...

Python/filesys

11. الوصول إلى الملفات والمجلدات تتعامل الوحدات المشروحة ضمن هذا الفصل مع الملفات والمجلدات، فهناك وحدات لقراءة خصائص الملفات ومعالجة المسارات في أنظمة التشغيل المختلفة، وإنشاء الملفات المؤقتة. نورد فيما يلي قائمة بجميع الوحدات في هذا الفصل: 11.1. pathlib — مكتبة كائنية التوجه للتعامل مع مسارات نظام الملفات تحتوي هذه المكتبة الأصناف المختصة بالتعامل مع المسارات في مختلف أنظمة التشغيل 11.2. os.path — المعالجات الشائعة للمسارات تتضمن التوابع اللازمة للتعامل مع المسارات في نظام التشغيل الذي تعمل عليه بايثون، وفيها ...

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

تقدم بايثون مجموعة من الثوابت، بعضها في مجال الأسماء الداخلي، أما البعض الآخر فيضاف من قبل الوحدة site إلى مفسّر بايثون التفاعلي. ثوابت في مجال الأسماء الداخلي False يمثّل هذا الثابت القيمة الخاطئة للنوع bool. لا تسمح اللغة بإسناد أي قيمة إلى هذا الثابت وستطلق الخطأ SyntaxError عند محاولة القيام بذلك. True يمثّل هذا الثابت القيمة الصحيحة للنوع bool. لا تسمح اللغة بإسناد أي قيمة إلى هذا الثابت وستطلق الخطأ SyntaxError عند محاولة القيام بذلك. None هذا الثابت هو القيمة ...

Python/glob

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

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

قد تكون التعابير البرمجية في الشيفرة صحيحة من ناحية الصيغة، لكن قد يؤدي تنفيذ تلك الشيفرة إلى التسبب في حدوث الأخطاء. تسمّى الأخطاء المُكتشفة أثناء تنفيذ الشيفرة بالاستثناءات (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' ...

Python/linecache

تتيح وحدة linecache قراءة أسطر الملفات بفعالية، حيث تمت أمثلة العمليات ضمن هذه الوحدة باستخدام مبدأ الكاش cache التي تظهر فائدتها عند الحاجة إلى قراءة العديد من الأسطر من الملف، وتُستخدم هذه الوحدة ضمن الوحدة traceback التي تسترجع أسطرًا من شيفرات بايثون المصدرية لتضمينها ضمن رسالة الخطأ المنسقة. يُستخدم التابع tokenize.open لفتح الملفات، وهذا التابع يستخدم tokenize.detect_encoding لقراءة ترميز الملف في حال غياب الرمز الخاص بالترميز المستخدم، ويُعتبر الترميز الافتراضي للملفات هو UTF-8. مُلاحظة: تستخدم هذه الوحدة داخليًّا ضمن بايثون ...

Python/stat

يُعرّف الصنف stat ثوابت وتوابع لمعالجة نتيجة استدعاء التوابع os.stat()‎وos.fstat‎‎()‎  وos.lstat()‎ وكذلك بطبيعة الحال فهو يعالج نتائج التابع Path.stat‎()‎، ولا يتم إنشاء كائنات منه، فجميع التوابع والثوابت يمكن الوصول إليها مباشرة من الصنف. توابع الصنف stat لكشف نوع الملفات التابع stat.S_ISDIR للكشف عن كون النمط مشيرًا إلى مجلد. التابع stat.S_ISCHR للكشف عن كون النمط مشيرًا إلى ملف character special device. التابع stat.S_ISBLK للكشف عن كون النمط مشيرًا إلى ملف block special device. التابع stat.S_ISREG للكشف عن كون النمط مشيرًا إلى ...

Python/fnmatch

تُقدم هذه الوحدة دعمًا لwildcards المماثلة لنمط صدفة يونكس، وهي ليست نفسها التعابير النظامية Regular Expression (المذكورة في الوحدة re)، فالرموز الخاصة التي تستخدمها الwildcards من نمطصدفة يونكس هي التالية: النمط المعنى * يطابق كل شيء ? يطابق أي محرف مفرد [seq] يطابق أي محرف من المحارف المذكورة بين القوسين [seq!] يطابق أي محرف من المحارف المذكورة غير بين القوسين وفي حال الرغبة في مطابقة المحرف '?' حرفيًّا (وليس مدلوله الخاص) عندها يمكن وضعه بين قوسين مربعين [?].

ردود النداء في PHP

يمكن الإشارة إلى رد النداء (Callbacks) باستخدام نوع البيانات (callable) منذ إصدار PHP 5.4، هذا التوثيق يستخدم معلومات نوع callback لنفس الغرض. بعض الدوال مثل call_user_func()‎ أو usort()‎ تقبل فقط دوال رد النداء المعرّفة من قبل المستخدم (user-defined callback functions) كمعامل. دوال رد النداء ليست دوالًا بسيطةً فحسب، بل يمكن استخدام الدوال التي تكون أعضاءً في أصناف (object methods)، بما في ذلك الدوال الساكنة (static class methods). تمرير دوال رد النداء يتم تمرير أي دالة PHP باستخدام اسمها كسلسلة نصية، ...

ردود النداء في PHP

يمكن الإشارة إلى رد النداء (Callbacks) باستخدام نوع البيانات (callable) منذ إصدار PHP 5.4، هذا التوثيق يستخدم معلومات نوع callback لنفس الغرض. بعض الدوال مثل call_user_func()‎ أو usort()‎ تقبل فقط دوال رد النداء المعرّفة من قبل المستخدم (user-defined callback functions) كمعامل. دوال رد النداء ليست دوالًا بسيطةً فحسب، بل يمكن استخدام الدوال التي تكون أعضاءً في أصناف (object methods)، بما في ذلك الدوال الساكنة (static class methods). تمرير دوال رد النداء يتم تمرير أي دالة PHP باستخدام اسمها كسلسلة نصية، ...

التابع Module.protected_instance_methods‎ في روبي

يعيد التابع protected_instance_methods قائمة بتوابع النسخة (instance methods) المحمية المعرفة في الوحدة. إذا مُرِّرت قيمة إلى التابع وكانت false، فلن تُتضمّن توابع الأسلاف (ancestors). البنية العامة protected_instance_methods(include_super=true)→ array‎ المعاملات include_super‎ إذا كان هذا الوسيط يساوي false، فلن تُتضمّن توابع الأسلاف (ancestors). القيمة الافتراضية هي: true. القيمة المعادة تعاد مصفوفة تمثِّل قائمة بتوابع النسخة (instance methods) المحمية المعرفة في الوحدة. انظر أيضا التابع protected: يعين المرئية (visibility) الافتراضية للتوابع المعرفة لاحقًا إلى المرئية protected المحمية. التابع protected_method_defined?‎: يتحقق إن كان التابع المحمي (protected) المعطى ...

التابع Module.private_instance_methods‎ في روبي

يعيد التابع private_instance_methods قائمة بتوابع النسخة الخاصة (private instance methods) المعرفة في الوحدة. إن مُرِّر إلى التابع القيمة false، فلن تُضمّن توابع الأسلاف (ancestors). البنية العامة private_instance_methods(include_super=true) → array‎ المعاملات include_super‎ قيمة منطقية إن كانت false، فلن تُضمّن توابع الأسلاف (ancestors). القيمة المعادة تعاد مصفوفة تحوي توابع النسخة الخاصة (private instance methods) المعرفة في الوحدة. أمثلة مثال على استخدام التابع private_instance_methods‎: module Mod def method1() end private :method1 def method2() end end Mod.instance_methods ...

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

توسع كائنات الصنف ConditionVariable عمل الصنف Mutex. فمن الممكن باستخدام المتغيرات الشرطية إيقاف مهمة حرجة (critical section) في أثناء تنفيذها إلى حين إتاحة مورد ما. إليك المثال التالي: mutex = Mutex.new resource = ConditionVariable.new a = Thread.new { mutex.synchronize { # Thread 'a' now needs the resource resource.wait(mutex) # 'a' can now have the resource } } b = Thread.new { mutex.synchronize { ...

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

يعتبر الصنف SystemCallError الصنف الأب لكل أصناف الأخطاء منخفضة المستوى المرتبطة بنظام التشغيل. الأخطاء المتوفرة على نظام التشغيل الحالي هي أصناف فرعية من الصنف SystemCallErrorـ وهي مُعرّفة في الوحدة Errno. File.open("does/not/exist")‎ عند تنفيذ هذا السطر البرمجي، سيطلق استثناء بالشكل التالي: Errno::ENOENT: No such file or directory - does/not/exist‎ توابع الصنف العامة (Public Class Methods) === يتحقق إن كان الاستثناء الذي استُدعي معه كائنًا عامًا من الصنف SystemCallError، أو إن كان رقما الخطأ الخاصين بهذا الاستثناء والاستثناء الآخر المعطى متساويين. new ...

التابع Object.singleton_method في روبي

يبحث التابع singleton_method في التوابع المنفردة فقط بطريقة مشابهة للتابع method. البنية العامة singleton_method(sym) → method المعاملات sym الرمز المعرِّف للتابع المنفرد. القيم المعادة يُعاد التابع الموافق للرمز sym المُعطى. أمثلة مثالٌ عن استخدام التابع singleton_method: class Demo def initialize(n) @iv = n end def hello() "Hello, @iv = #{@iv}" end end k = Demo.new(99) def k.hi "Hi, @iv = #{@iv}" end m = k.singleton_method(:hi) m.call #=> "Hi, @iv = 99" m = k.singleton_method(:hello) ...

التابع Object.public_methods في روبي

يُعيد التابع public_methods قائمةً بالتوابع العامَّة (public methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها. إذا مُرِّرت القيمة false إلى التابع، فستحتوي القائمة توابع الكائن المستقبل (receiver) فقط. البنية العامة public_methods(all=true) → array المعاملات all معامل اختياري يحدِّد التوابع المعادة. يأخذ هذا المعامل القيمة true (افتراضيًا)، أو القيمة false. القيم المعادة تُعاد قائمةٌ بالتوابع العامة التي يمتلك الكائن المعطى الوصول إليها إذا لم يعطَ الكائن all، أو ستُعاد قائمة تحتوي توابع الكائن المستقبل (receiver) فقط إذا أعطي المعامل all ...

التابع Module.public_instance_methods‎ في روبي

يعيد التابع public_instance_methods قائمة بتوابع النسخة العامة (public instance methods) المعرفة في الوحدة. إن مُرِّرت قيمة إلى التابع وكانت false، فلن يتم تضمين توابع الأسلاف (ancestors). البنية العامة public_instance_methods(include_super=true)→ array‎ المعاملات include_super‎ قيمةمنطقية إن كانت false، فلن يتم تضمين توابع الأسلاف (ancestors). القيمة المعادة تعاد مصفوفة تمثِّل قائمةً بتوابع النسخة العامة (public instance methods) المعرفة في الوحدة. انظر أيضا التابع public: يعين المرئية (visibility) الافتراضية للتوابع المعرفة لاحقًا إلى public العامة. التابع public_instance_method: يبحث عن التوابع العامة (public) وحسب على غرار التابع instance_method. التابع public_method_defined?‎: يتحقق ...

التابع Object.protected_methods في روبي

يُعيد التابع protected_methods قائمةً بالتوابع المحميَّة (protected methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها. إذا مُرِّرت القيمة false إلى التابع، فستحتوي القائمة توابع الكائن المستقبل (receiver) فقط. البنية العامة protected_methods(all=true) → array المعاملات all معامل اختياري يحدِّد التوابع المعادة. يأخذ هذا المعامل القيمة true (افتراضيًا)، أو القيمة false. القيم المعادة تُعاد قائمةٌ بالتوابع المحميَّة التي يمتلك الكائن المعطى الوصول إليها إذا لم يعطَ الكائن all، أو ستُعاد قائمة تحتوي توابع الكائن المستقبل (receiver) فقط إذا أعطي المعامل all ...

التابع Object.private_methods في روبي

يُعيد التابع private_methods قائمةً بالتوابع الخاصة (private methods) التي يمتلك الكائن الذي استدعي معه الوصول إليها. إذا مُرِّرت القيمة false إلى التابع، فستحتوي القائمة توابع الكائن المستقبل (receiver) فقط. البنية العامة private_methods(all=true) → array المعاملات all معامل اختياري يحدِّد التوابع المعادة. يأخذ هذا المعامل القيمة true (افتراضيًا)، أو القيمة false. القيم المعادة تُعاد قائمةٌ بالتوابع الخاصة التي يمتلك الكائن المعطى الوصول إليها إذا لم يعطَ الكائن all، أو ستُعاد قائمة تحتوي توابع الكائن المستقبل (receiver) فقط إذا أعطي المعامل all ...

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

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

تعريف الإضافات محليًّا (Introduce Local Extensions)

المشكلة الحاجة إلى بعض التوابع (methods) غير الموجودة في الصنف المساعد (utility class)، ومن غير الممكن إضافتها إلى ذلك الصنف. الحل إنشاء صنفٍ (class) جديدٍ يحتوي التوابع اللازمة، وجعله كصنف تغليفٍ (wrapper) للصنف المساعد أو كصنفٍ فرعيٍّ (subclass) له. مثال قبل إعادة التصميم يعتمد صنف العميل ClientClass على الصنف المساعد Date ولكنّه بحاجة إلى بعض التوابع غير الموجودة فيه (كتابع الحصول على اليوم التالي مثلًا): الصنف العميل ClientClass الذي يعتمد على الصنف المساعد Date. بعد إعادة التصميم أصبح هنالك صنف ...

التابع Module.attr_accessor‎ في روبي

يحدد التابع attr_accessor خاصية مسماة (named attribute) لهذه الوحدة، إذ يكون الاسم هو نتيجة التعبير symbol.id2name، وينشئ متغير نسخة (@name) وتابع وصول مقابل له (access method) لقراءته. ينشئ أيضًا تابعًا يُسمى ‎name=‎ لتعيين الخاصية. تحول الوسائط النصية إلى رموز. البنية العامة attr_accessor(symbol, ...) → nil attr_accessor(string, ...) → nil‎ المعاملات symbol‎ رمز لتحديد الخاصية. string‎ سلسلة نصية لتحديد الخاصية. القيمة المعادة تعاد القيمة nil. أمثلة مثال على استخدام التابع attr_accessor‎: module Mod attr_accessor(:one, :two) end Mod.instance_methods.sort #=> [:one, :one=, :two, :two=]‎ ...

الهيكلية التفرعية للوراثة (Parallel Inheritance Hierarchies)

توصيف المشكلة يتطلَّب إنشاءُ صنفٍ فرعيٍّ (subclass) لأحد الأصناف إنشاءَ صنفٍ فرعيٍّ ثانٍ لصنفٍ آخر غيره. أسبابها لا تبدو المشكلة واضحةً في الهيكليّات (hierarchies) الصغيرة، ولكنها تبدأ بالظهور مع إضافة أصناف (classes) جديدةٍ ممّا يجعل إجراء التعديلات أمرًا صعبًا. وما الحل؟ التخلُّص من التكرار التفرعيّ بين الهيكليّتين (hierarchies)، ويتمّ بخطوتين: إنشاء مرجعيّة (reference) من إحدى الهيكليّتين التفرعيّتين إلى الهيكليّة الثانية. إزالة الهيكليّة في الصنف المُشار إليه (referred class)، وذلك بنقل التوابع (move methods) ونقل الحقول (move fields). إليك المزيد ستحصل ...

التابع Module.instance_method‎ في روبي

يعيد التابع instance_method كائنًا من النوع UnboundMethod يمثل تابع النسخة (instance method) المعطى في الوحدة التي استُدعي معها. البنية العامة instance_method(symbol)→ unbound_method‎ المعاملات symbol‎ كائن من النوع Symbol. القيمة المعادة يعاد كائنٌ من النوع UnboundMethod يمثل تابع النسخة المعطى في الوحدة التي استُدعي معها. أمثلة مثال على استخدام التابع instance_method‎: class Interpreter def do_a() print "there, "; end def do_d() print "Hello "; end def do_e() print "!\n"; end def do_v() print ...

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

يمكن استخدام الصنف Mutex وكائناته كواجهة لتنسيق الوصول إلى البيانات المشتركة من عدة خيوط (threads) موجودة وتعمل في نفس الوقت. إليك هذا المثال: semaphore = Mutex.new a = Thread.new { semaphore.synchronize { # access shared resource } } b = Thread.new { semaphore.synchronize { # access shared resource } } توابع الصنف العامة (Public Class Methods) new ينشئ كائنًا جديدًا من النوع Mutex. توابع النسخة العامة (Public Instance Methods) lock يحاول مسك القفل (grab ...

التابع Object.remove_instance_variable في روبي

يَحذِف التابع remove_instance_variable متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر. البنية العامة remove_instance_variable(symbol) → obj المعاملات symbol الرَّمز المعرِّف لمتغير النسخة المراد حذفه. القيم المعادة تعاد قيمة متغير النسخة symbol بعد حذفه من الكائن المعطى. أمثلة مثالٌ عن استخدام التابع remove_instance_variable: class Dummy attr_reader :var def initialize @var = 99 end def remove remove_instance_variable(:@var) end end d = Dummy.new d.var #=> ...

التابع TarFile.addfile()‎‎ في بايثون

يضيف التابع كائن TarInfo المعطى إلى ملف الأرشيف. البنية العامة TarFile.addfile(tarinfo, fileobj=None) ‎المعاملات ‎fileobj معامل اختياري يجب أن تكون قيمته ملفًّا ثنائيًا، وتُقرأ عدد البايتات في tarinfo.size من هذا الملف وتضاف إلى الأرشيف. يمكن إنشاء كائنات TarInfo مباشرة، أو باستخدام التابع gettarinfo()‎. القيمة المعادة يعيد التابع القيمة None. أمثلة يبين المثال التالي آلية عمل التابع: >>> import tarfile >>> tar = tarfile.open('files.tar', 'w') >>> tar_info = tar.gettarinfo('file5.js') >>> tar.addfile(tar_info) انظر أيضًا التابع TarFile.add()‎: يضيف التابع الملف المعطى إلى ملف الأرشيف. التابع TarFile.gettarinfo()‎: ينشئ ...

التابع TarFile.getnames()‎‎ في بايثون

يعيد التابع قائمة بأسماء الأعضاء في الأرشيف. البنية العامة TarFile.getnames() القيمة المعادة يعيد التابع قائمة بأسماء الأعضاء في الأرشيف، وتأخذ القائمة المعادة نفس ترتيب القائمة المعادة من التابع getmembers()‎. أمثلة يبين المثال التالي آلية عمل التابع: >>> import tarfile >>> tar = tarfile.open('files.tar') >>> tar.getnames() ['file1.txt', 'file2.html', 'file3.py'] انظر أيضًا التابع TarFile.getmember()‎: يعيد التابع كائن TarInfo لعضو ملف الأرشيف المعطى. التابع TarFile.getmembers()‎: يعيد التابع أعضاء الأرشيف على هيئة قائمة من كائنات TarInfo. مصادر صفحة Read and write tar archive files في توثيق بايثون ...

التابع bytes.isspace()‎ في بايثون

يتحقق هذا التابع ممّا إذا كانت جميع البايتات في التسلسل الثنائي هي بايتات المسافة البيضاء في ترميز ASCII، ومن أنّ التسلسل ليس فارغًا. البنية العامة bytes.isspace() القيمة المعادة يعيد التابع القيمة True إذا كانت جميع البايتات في التسلسل الثنائي هي بايتات المسافة البيضاء في ترميز ASCII، وإذا كان التسلسل غير فارغٍ. بايتات المسافة البيضاء في ترميز ASCII هي البايتات التي تقع ضمن التسلسل: ‎b' \t\n\r\x0b\f'‎، والموضح في الجدول التالي: قيمة البايت الوصف b' '‎ مسافة (space). ‎b'\t'‎ علامة جدولة (tab). ...

التابع bytes.rfind()‎ في بايثون

يعيد التابع أعلى قيمة للفهرس في التسلسل الأصلي حيث تجد فيه التسلسل الفرعي. البنية العامة str.rfind(sub[, start[, end]]) المعاملات sub التسلسل الفرعي المراد معرفة موقعه. يمكن أن يكون هذا المعامل أي كائن شبيه بالبايتات (bytes-like object) أو عددًا صحيحًا يبدأ من 0 وينتهي بالعدد 255. start الموقع الذي يبدأ منه التابع عملية البحث ضمن التسلسل الأصلي. end الموقع الذي ينهي فيه التابع عملية البحث ضمن التسلسل الأصلي. يسلك هذان المعاملان الاختياريان نفس السلوك المتّبع في عملية اقتطاع السلاسل النصية slicing. ...

التابع deque.copy()‎ في بايثون

ينشئ التابع نسخة سطحية من كائن deque. البنية العامة d.‎copy() القيمة المعادة يعيد التابع كائن deque جديد يمثّل نسخة سطحية عن كائن dequeالأصلي. أمثلة يبين المثال التالي آلية عمل التابع. يلاحظ أنّ كائني deque أدناه يمتلكان معرّفين مختلفين، ولكنّ عناصرهما تمتلك المعرّفات نفسها: >>> import collections >>> t1 = (1, 2, 3, 4, 5) >>> d1 = collections.deque(t1) >>> d2 = d1.copy() >>> print (d1) deque([1, 2, 3, 4, 5]) >>> print(d2) deque([1, 2, 3, 4, 5]) >>> print(id(d1)) 140310509291624 >>> print(id(d2)) 140310509291520 >>> print(id(d1[0])) 140310800147520 >>> print(id(d2[0])) 140310800147520 انظر أيضًا التابع clear()‎:  :يحذف جميع ...

التابع ConfigParser.remove_option()‎‎ في بايثون

يحذف التابع الخيار المحدّد من القسم المحدّد. البنية العامة remove_option(section, option) ‎المعاملات section القسم الذي يحتوي على الخيار المراد حذفه. option الخيار المراد حذفه. القيمة المعادة إن لم يكن القسم المحدّد موجودًا، سيطلق التابع الاستثناء NoSectionError. يعيد التابع القيمة True إن كان الخيار المراد حذفه موجودًا، ويعيد القيمة False فيما عدا ذلك. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import configparser >>> config = configparser.ConfigParser() >>> config.read('config.cfg') ['config.cfg'] >>> config.remove_option('topsecret.server.com', 'php_version') True انظر أيضًا التابع remove_section()‎: يحذف التابع القسم المعطى من ملف الإعدادات. مصادر ...

التابع set.remove()‎ في بايثون

يحذف التابع عنصرًا واحدًا من المجموعة. البنية العامة remove(elem) المعاملات elem العنصر المراد حذفه من المجموعة. إن لم يكن هذا العنصر ضمن المجموعة يطلق التابع الخطأ KeyError. أمثلة أمثلة نموذجية عن استخدام هذا التابع: >>> s = {1, 2, 3, 4, 5} >>> s.remove(3) >>> s {1, 2, 4, 5} >>> s.remove(6) Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 6 انظر أيضًا المجموعات في بايثون. التابع set.add()‎: إضافة عنصر واحد إلى المجموعة. التابع set.discard()‎: حذف عنصر واحد من المجموعة إن ...

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

يستدعي هذا التابعُ التابعَ Cursor.executemany()‎ مع تمرير المعاملات المعطاة. البنية العامة executemany(sql[, parameters]) ‎المعاملات sql سلسلة نصية تتضمن جملة SQL المراد تنفيذها. القيمة المعادة هذا التابع هو طريقة مختصرة لإنشاء كائن مؤشر عن طريق استدعاء التابع cursor()‎، حيث يستدعي التابع executemany()‎ في كائن المؤشر مع تمرير المعاملات المعطاة، ثم يعيد كائن المؤشر. أمثلة يبين المثال التالي آلية عمل التابع: import sqlite3 conn = sqlite3.connect('example.db') purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00), ...

التابع bytes.center()‎ في بايثون

يعيد التابع center()‎ البيانات الثنائية مزاحة نحو الوسط ضمن تسلسل يحمل طولًا يحدّده المستخدم. البنية العامة bytes.center(width[, fillbyte]) المعاملات width يحدّد هذا المعامل طول السلسلة المعادة. fillbytes يحدّد هذا المعامل البايتات التي سيستخدمها التابع لإجراء عملية الإزاحة، ويأخذ هذا المعامل قيمة افتراضية هي المسافة البيضاء في ترميز ASCII.  القيمة المعادة يعيد التابع التسلسل الأصلي مزاحًا نحو الوسط ضمن تسلسل ذي عرض محدّد، وتزاح البيانات الثنائية باستخدام البايتات التي يحدّدها المستخدم. إذا كانت القيمة المحدّدة للمعامل width أقل من أو تساوي القيمة ...

التابع FTPHandler.ftp_open()‎‎ في بايثون

يفتح التابع ملف FTP المحدّد في الطلب المعطى. يجري تسجيل الدخول دائمًا باستخدام حقلي اسم المستخدم وكلمة المرور فارغين. البنية العامة FTPHandler.ftp_open(req) المعاملات req طلب HTTP المراد إرساله. مصادر صفحة Extensible library for opening URLs في توثيق بايثون الرسمي.

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

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

التابع ConfigParser.getint()‎‎ في بايثون

تابع مساعد وظيفته تحويل الخيار المعطى في القسم المحدّد إلى عدد صحيح. البنية العامة getint(section, option, *, raw=False, vars=None[, fallback]) ‎المعاملات ‎راجع التابع get()‎ للمزيد من التفاصيل حول المعاملات raw و vars و fallback. القيمة المعادة يعيد التابع قيمة الخيار الذي يجلبه بعد تحويله إلى عدد صحيح. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import configparser >>> config = configparser.ConfigParser() >>> config.read('config.cfg') ['config.cfg'] >>> config.getint('topsecret.server.com', 'Port') 50022 انظر أيضًا التابع get()‎: يجلب التابع الخيار المحدّد من القسم المعطى. التابع getfloat()‎: تابع مساعد وظيفته تحويل ...

التابع match.expand()‎ في بايثون

يجري هذا التابع عملية استبدال التسلسلات المسبوقة بالخط المائل العكسي بالاعتماد على قالب متمثّلٍ بسلسلة نصية. البنية العامة match.expand(template) المعاملات template سلسلة نصية تتضمّن تسلسلات مسبوقة بالخط المائل العكسي تمثّل القالب الذي سيستخدمه التابع لإجراء عمليات الاستبدال. القيمة المعادة يعيد التابع السلسلة النصية الناتجة عن إجراء عمليات عملية استبدال التسلسلات المسبوقة بالخط المائل العكسي بالاعتماد على قالب متمثّلٍ بسلسلة نصية، وبنفس طريقة عمل التابع regex.sub()‎. إذ تُحوّل تسلسلات التهريب مثل ‎\n إلى المحارف المقابلة، وتحوّل الإشارات الخلفية الرقمية مثل (‎\2، ...

التابع BZ2Compressor.flush()‎ في بايثون

يتمّ التابع عملية الضغط، ويعيد البيانات المضغوطة المتبقية في ذاكرة التخزين الداخلية internal buffer. البنية العامة flush() لا يمكن استخدام كائن compressor بعد استدعاء هذا التابع. مصادر صفحة Support for bzip2 compression في توثيق بايثون الرسمي.

التابع BaseHandler.unknown_open()‎‎ في بايثون

هذا التابع غير معرّف في الصنف BaseHandler، ولكن يجب على الأصناف المتفرّعة منه أن تعرّف هذا التابع إن كان المطلوب التقاط جميع عناوين URL دون تحديد أيّ معالج مسجّل لفتح هذه العناوين. يُستدعى هذا التابع، في حال استخدامه، من قبل كائن OpenerDirector الأب. يُستدعى هذا التابع قبل أي تابع open خاصّ بالبروتوكول. البنية العامة BaseHandler.unknown_open(req) القيمة المعادة يجب أن تكون القيم المعادة مشابهة للقيم المعادة من التابع default_open()‎. مصادر صفحة Extensible library for opening URLs في توثيق بايثون الرسمي.

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

يعيد التابع كائن time يتضمّن نفس الساعة والدقيقة والثانية وأجزاء الثانية وfold في كائن datetime. البنية العامة ‎‎datetime.time() القيمة المعادة يعيد التابع كائن time يتضمّن نفس الساعة والدقيقة والثانية وأجزاء الثانية وحالة التوقيت المحلي (fold) في كائن datetime. يُعيد التابِع أيضًا المُعامِل tzinfo بالقيمة None. أمثلة يُبيّن المثال التالي آلية عمل التابع: ‎‎‎>>> from datetime import datetime >>> dt = datetime(2018, 6, 7, 22, 45, 6) >>> dt.time() datetime.time(22, 45, 6) >>> type(dt.time().tzinfo) <class 'NoneType'> انظر أيضًا التابع datetime.date()‎‎: يعيد التابع كائن date يتضمّن نفس ...

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

يتحقق التابع isdecimal()‎ ممّا إذا كانت السلسلة النصية مكوّنة من حروف الأعداد العشرية فقط، وأنّ فيها حرفًا واحدًا على الأقل. البنية العامة x.isdecimal() القيمة المعادة يعيد التابع القيمة True إذا كانت السلسلة النصية مكوّنة من حروف الأعداد العشرية فقط وكان فيها حرف واحد على الأقل، وتعيد القيمة False فيما عدا ذلك. الأعداد العشرية هي الأعداد التي يمكن استخدامها لتكوين أرقام في النظام العشري (الأساس 10)، مثل U+0660 (ترميز العدد صفر في النظام العربي الهندي ARABIC-INDIC DIGIT ZERO). وبصورة عامة الحرف ...

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

يستبدل التابع القيم المعطاة في المعاملات بالقيم الأصلية في كائن datetime. البنية العامة datetime.replace(year=self.year, month=self.month, day=self.day, hour=self.hour, minute=self.minute, second=self.second, microsecond=self.microsecond, tzinfo=self.tzinfo, * fold=0) المعاملات يأخذ التابع مجموعة من المعاملات المفتاحية هي year و month و day و hour و minute و second و microsecond (السنة والشهر واليوم والساعة والدقيقة والثانية وأجزاء الثانية). إضافة إلى المعاملين tzinfo و fold. تحلّ القيمة المحدّدة لأيّ من هذه المعاملات محلّ القيمة المقابلة في كائن datetime. تأخذ هذه المعاملات قيمًا افتراضية تساوي القيم المحدّدة في ...

التابع list.pop()‎ في بايثون

يحذف هذا التابع العنصر في الموقع المحدّد من قبل المستخدم. البنية العامة l.pop() المعاملات i معامل اختياري، يحدّد موقع العنصر المراد حذفه من القائمة. في حال عدم تعيين قيمة لهذا المعامل فسيحذف التابع العنصر الأخير في القائمة. القيمة المعادة يعيد هذا التابع العنصر المحذوف من القائمة. أمثلة يبين المثال التالي كيفية استخدام هذا التابع لحذف العناصر من القائمة: >>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana'] >>> fruits.pop(2) 'pear' >>> fruits.pop() 'banana' >>> انظر أيضًا القوائم في بايثون. التابع list.sort()‎: فرز القائمة في ...

التابع TextCalendar.pryear()‎ في بايثون

يطبع التابع التقويم لسنة كاملة بالاعتماد على ما يعيده التابع formatyear()‎. البنية العامة pryear(theyear, w=2, l=1, c=6, m=3) المعاملات theyear السنة المطلوبة. w معامل اختياري يحدّد عرض عمود التاريخ، ويأخذ القيمة الافتراضية 2. l معامل اختياري يحدّد عدد الأسطر لكل أسبوع، ويأخذ القيمة الافتراضية 1. c معامل اختياري يحدّد عدد الفراغات بين أعمدة الشهر. m معامل اختياري يحدّد عدد أعمدة التقويم، ويأخذ القيمة الافتراضية 3. القيمة المعادة يطبع التابع التقويم لسنة كاملة بالاعتماد على ما يعيده التابع formatyear()‎. أمثلة يبين ...

التابع TarFile.next()‎‎ في بايثون

يعيد التابع العضو التالي في الأرشيف على هيئة كائن TarInfo وذلك عند فتح كائن TarFile للقراءة. البنية العامة TarFile.next() القيمة المعادة يعيد التابع العضو التالي في الأرشيف على هيئة كائن TarInfo وذلك عند فتح كائن TarFile للقراءة. ويعيد التابع القيمة None إن لم يتوفّر المزيد من الأعضاء. أمثلة يبين المثال التالي آلية عمل التابع: >>> import tarfile >>> tar = tarfile.open('files.tar', 'r') >>> tar.next() <TarInfo 'file1.txt' at 0x7f486610b110> >>> tar.next() <TarInfo 'file2.html' at 0x7f486610b2a0> >>> tar.next() <TarInfo 'file3.py' at 0x7f486610b048> >>> tar.next() >>> print(tar.next()) None انظر أيضًا التابع TarFile.getmember()‎: يعيد ...

التابع casefold()‎ في بايثون

يعيد هذا التابع السلسلة النصية بحالة casefolded، ويمكن استخدام هذا النوع من السلاسل لإجراء المقارنة دون الاعتماد على حالة الأحرف. البنية العامة x.casefold() القيمة المعادة تعيد هذه الدالة السلسلة النصية بحالة casefolded (جميع الحروف تكون حروفًا صغيرة). توضيح تشبه عملية Casefolding عملية التحويل إلى الحروف الصغيرة lowercasing ولكن بشدّة أكبر؛ وذلك لأنّها تزيل جميع الفوارق ضمن السلسلة النصية. فعلى سبيل المثال الحرف الألماني الصغير 'ß' مكافئ للحرفين "ss"، ولما كان هذا الحرف صغيرًا في الأصل، فإنّ استخدام الدالة lower()‎ لن ...

التابع array.fromlist()‎ في بايثون

يلحق التابع عناصر القائمة المعطاة بالمصفوفة. يؤدي هذا التابع نفس عمل التعبير for x in list: a.append(x)‎ باستثناء أنّه في حال وجود خطأ في النوع فإنّ المصفوفة لن تتغير. البنية العامة ‎array.fromlist(list) المعاملات list القائمة المراد إلحاقها بنهاية المصفوفة. القيمة المعادة يعيد التابع القيمة None. أمثلة يبين المثال التالي آلية عمل التابع: >>> import array >>> l1 = [1, 2, 3, 4, 5] >>> a1 = array.array('l') >>> a1.fromlist(l1) >>> a1 array('l', [1, 2, 3, 4, 5]) انظر أيضًا التابع array.frombytes()‎: يلحق التابع عناصر السلسلة ...

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

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

التابع array.remove()‎ في بايثون

يحذف التابع أول ظهور للقيمة المعطاة من المصفوفة. البنية العامة ‎array.remove(x) المعاملات x القيمة المراد حذفها من المصفوفة. القيمة المعادة يعيد التابع القيمة None. أمثلة يبين المثال التالي آلية عمل التابع: >>> import array >>> a1 = array.array('l', [1, 2, 3, 4, 5]) >>> a1.remove(3) انظر أيضًا التابع array.append()‎: يضيف التابع عنصرًا جديدًا يحمل القيمة المعطاة إلى نهاية المصفوفة. التابع array.extend()‎: يلحق التابع عناصر كائن التكرار المعطى إلى نهاية المصفوفة. التابع array.insert()‎: يدرج التابع عنصرًا جديدًا يحمل القيمة المعطاة في المصفوفة قبل ...

التابع PrettyPrinter.isreadable()‎ في بايثون

يحدّد التابع ما إذا كان التمثيل المنسّق للكائن المعطى "قابلًا للقراءة" أو يمكن استخدامه لإعادة بناء القيمة باستخدام الدالة eval()‎. البنية العامة PrettyPrinter.isreadable(object) المعاملات object الكائن المراد معرفة ما إذا كان قابلًا للقراءة أو يمكن استخدامه لإعادة بناء القيمة باستخدام الدالة eval()‎. القيمة المعادة يعيد التابع القيمة False دائمًا مع الكائنات التعاودية. إن عُيّنت قيمة للمعامل depth في كائن PrettyPrinter وكان الكائن أعمق ممّا هو مسموح به، فسيعيد التابع القيمة False. أمثلة يبين المثال التالي آلية عمل الدالة: >>> import ...

التابع deque.extend()‎ في بايثون

يمدّد الجانب الأيمن من كائن deque بإضافة العناصر المعطاة. البنية العامة d.extend(iterable) المعاملات iterable كائن مكرِّر تضاف عناصره إلى كائن deque. القيمة المعادة يعيد التابع كائن deque جديد يمثّل نسخة سطحية عن كائن dequeالأصلي. أمثلة يبين المثال التالي آلية عمل التابع. >>> from collections import deque >>> d = deque('ghi') >>> d.extend('jkl') >>> d deque(['g', 'h', 'i', 'j', 'k', 'l']) انظر أيضًا التابع extendleft()‎:  :يمدّد الجانب الأيسر من كائن deque بإضافة العناصر المعطاة. التابع append()‎:  :يضيف التابع العنصر المعطى إلى الجانب الأيمن من كائن ...

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

ينسّق التابع التاريخ والوقت باستخدام سلسلة التنسيق النصية المعطاة. البنية العامة ‎datetime.strftime(format) المعاملات format سلسلة التنسيق النصية التي يستخدمها التابع لتنسيق السلسلة النصية المعادة. راجع قسم (التابعان strftime()‎ و strptime()‎ ). القيمة المعادة يعيد التابع سلسلة نصية تمثّل الوقت والتاريخ، ويمكن التحكّم بطريقة التمثيل هذه باستخدام سلسلة تنسيق نصية. أمثلة يبين المثال التالي آلية عمل التابع: ‎>>> from datetime import date >>> dt = datetime(2018, 7, 8, 23, 9, 19) >>> dt.strftime("%d/%m/%y") '08/07/18' >>> dt.strftime("%d %b, %Y") '08 Jul, 2018' >>> dt.strftime("%d %b, %Y - %H:%M:%S") '08 ...

التابع HTTPRedirectHandler.redirect_request()‎‎ في بايثون

يعيد التابع كائن Request أو القيمة None استجابةً لعملية إعادة توجيه. البنية العامة HTTPRedirectHandler.redirect_request(req, fp, code, msg, hdrs, newurl) يُستدعى التابع عند استخدام التوابع http_error_30*()‎ بالطريقة الافتراضية عند استقبال عملية إعادة توجيه من المخدّم. إن أجريت عملية إعادة التوجيه، فإنّ التابع سيعيد كائن Request جديدًا وذلك للسماح لتوابع http_error_30*()‎ بإعادة التوجيه إلى العنوان الجديد newurl. إن لم يحدث ما سبق فحاول إطلاق الاستثناء HTTPError إن لم يُعالج هذا العنوان من قبل أيّ معالج آخر، أو أعد القيمة None إن لم تتمكن ...

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