حقن

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

حقن الترتيب والملخص

الإعلانات

  • Rating:
  • رخصة:
  • MIT/X Consortium Lic...
  • السعر:
  • FREE
  • اسم الناشر:
  • Ivan Korobkov
  • موقع ويب الناشر:
  • http://code.google.com/u/Ivan.Korobkov/

حقن العلامات


حقن وصف

حقن التبعية بايثون حقن هي مكتبة حقن تبعية بايثون بسرعة. يستخدم الديكور والبيانات للإشارة إلى التبعيات الخارجية، ونطاقات (مستوحاة من الغيار) لتحديد كيفية إعادة استخدام الكائنات. يمكن الرجوع إلى التبعيات حسب أنواع التعليقات التوضيحية الاختيارية. لا يلزم تكوين، ولكن التكوين المتقدمة في التعليمات البرمجية ممكنة. أدوات حقن التبعية من Python الأخرى، مثل Pycontainer أو Python Spring، هي منافذ من لغات أخرى (Java). لذلك يعتمدون على طرق حقن التبعية محددة لغات مكتوبة ثابتة، وصفها مارتن فاولر. Vowler.python ليس جافا. يمكن أن تكون أنماط وتقنيات البرمجة، والتي تبدو مناسبة وقابلة للاستخدام بلغة واحدة، محرجا في آخر. تم إنشاء حقن لتوفير طريقة _pythonic_ لحقن التبعية، والاستخدام وظيفة Python محددة. تم استخدام المصطلحات المستخدمة في حقنها عن قصد الغيار، ومع ذلك، فإن الهندسة المعمارية الداخلية مختلفة. عسل) Config = Inject.ATTR ("التكوين"، التكوين) A = حقن.ATTR ('A'، A) @ Inject.Param ('b'، b): def __init __ (الذات، b): self.b = bc = ج () هنا هي بعض الملامح الرئيسية "حقن": سريع، فقط 2-3 مرات أبطأ من إنشاء مثيل مباشر. الطريقة العادية لكائنات Instantiating، فئة (* Args، ** Kwargs). حقن الحجج في وظائف وأساليب. الرجوع إلى التبعيات حسب أنواع التعليقات التوضيحية الاختيارية. ملزمة للقلط القذيفة والحالات والطرق غير المنفذة (انظر المتهمين). طلب النطاق الوسيطة لتطبيقات WSGI و DJANGO (يتطلب Python2.5 +). لا يتطلب التكوين على الإطلاق. التكوين المرن المتقدمة ممكن: حجما.بلد (فئة، إلى = class2) حجما.بلد (قاعدة البيانات، annotation = 'user'، إلى = usersdatabase، نطاق = appscope) حاقن.بلد ('app_started_at'، to = dateetime.now ()) حاقن.بلد ('some_var'، to = class.unbound_method) طريقتان حقن، واصف وزخرين: فئة بلدي (كائن): ath = inject.attr ('ATM'، Class2) @ Inject.Param ('Param'، Class2): def myfunc (بارمية): نجاح دعم الميراث عن طريق الإصابة بحقن.super كقيمة KWARG الافتراضية: فئة بلدي (كائن): @ inject.Param ('param1'، class1) def __init __ (الذات، param1): self.param1 = param1 فئة MY2 (بلدي): @ Inject.Param ('param2'، class2) def __init __ (الذات، param2، param1 = inject.super): سوبر (MY2، النفس) .__ init __ (param1 = param1) self.param2 = param2 المتهمون للاتصال بالطرق غير المنفذة (بارد للمستمعين): فئة بلدي (كائن): def get_data (النفس): نجاح قم بإنشاء هاتف، يستدعي طريقة غير ملائمة. Invoker = Inject.invoker (my.get_data) البيانات = Invoer () الربط مباشرة إلى طريقة غير ملائمة. @ Inject.Param ('البيانات'، my.get_data) Def Func (البيانات): نجاح الحقن الجزئية، عندما يتم حقن بعض الحجج فقط. @ حقن.Param ("مسجل"، مسجل) Def Mylog (Msg، Logger): نجاح mylog ("رسالتي") نطاقات: تطبيق (Singleton)، طلب، النظافة. تحكم الفئة (كائن): جلسة = حقن.ATTR ("جلسة"، جلسة، نطاق = REQSCOPE) أو في التكوين حجما.بلدين (جلسة، إلى = جلسة، نطاق = REQSCOPE) أو تعيين النطاق الافتراضي @ rqscope. جلسة الطبقة (كائن): نجاح appscope.appscope. DataSepool Class (كائن): نجاح سهولة التكامل في المشاريع الحالية. متطلبات: بيثون


حقن برامج ذات صلة

bombardier_server.

إدارة تكوين المصدر المفتوح وتسليم الحزمة: مكونات الخادم المركزي ...

126

تحميل