Latest web development tutorials

الثعبان وحدات

الوحدة تسمح لك لتنظيم منطقيا كود بايثون الخاص بك.

تعيين رمز ذات الصلة في وحدة نمطية لجعل التعليمات البرمجية أسهل استخداما وأكثر مفهومة.

وحدات بيثون هي الكائنات مع السمة اسم عشوائية يستخدم لربط أو إشارة.

وببساطة، فإن الوحدة هي رمز بيثون لحفظ الملف. يمكن وحدات تحديد الوظائف والطبقات والمتغيرات. يمكن أن تحتوي وحدة برمجية قابلة للتنفيذ.

مثال

دعا حدة aname في كود بايثون بشكل عام يمكن العثور عليها في ملف يسمى aname.py. المثال التالي هو وحدة support.py بسيطة.

def print_func( par ):
   print "Hello : ", par
   return


بيان استيراد

تريد استخدام ملف مصدر بيثون، ببساطة أداء بيان استيراد آخر في الملف المصدر، بناء الجملة كما يلي:

import module1[, module2[,... moduleN]

عندما يصادف مترجم عبارة الاستيراد، إذا كان سيتم استيرادها وحدة في مسار البحث الحالي.

مسار البحث غير مترجم وسيتم في البداية بالبحث عن قائمة من كافة الدلائل. كما كنت ترغب في استيراد وحدة support.py، تحتاج إلى وضع الأمر في الجزء العلوي من البرنامج النصي:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 导入模块
import support
 
# 现在可以调用模块里包含的函数了
support.print_func("Zara")

أمثلة من إخراج أعلاه:

Hello : Zara

لن يتم استيراد وحدة نمطية واحدة، بغض النظر عن عدد المرات التي كنت تنفيذ الاستيراد. هذا يمنع يتم تنفيذ وحدة استيراد مرارا وتكرارا.



من ... بيان استيراد

بيثون يسمح لك لاستيراد عبارة عن جزء محدد من وحدة في مساحة الاسم الحالي. بناء الجملة كما يلي:

from modname import name1[, name2[, ... nameN]]

على سبيل المثال، لاستيراد وظيفة فيبوناكسي حدة أكذوبة، استخدم العبارة التالية:

from fib import fibonacci

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



من ... استيراد * بيان

جميع محتويات وحدة نمطية كلها في مساحة الاسم الحالي وممكن، ببساطة استخدم العبارة التالية:

from modname import *

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



وحدة تحديد المواقع

عند استيراد وحدة نمطية، بيثون محلل وحدة الموقف ترتيب البحث:

  • الدليل الحالي
  • إن لم يكن في الدليل الحالي، سوف بيثون بحث كل دليل في PYTHONPATH متغير قذيفة.
  • إذا لم تتمكن من العثور عليها، وسوف ننظر في بيثون المسار الافتراضي. تحت يونيكس، المسار الافتراضي هو عادة / البيرة / المحلية / ليب / الثعبان /.

يتم تخزين مسار البحث حدة في وحدات نظام متغير sys.path. يحتوي متغير الدليل الحالي، PYTHONPATH ودليل التثبيت الافتراضي من عملية صنع القرار.



متغير PYTHONPATH

كما متغير بيئة، PYTHONPATH التي شنت في القائمة العديد من الدلائل. PYTHONPATH قذيفة متغير جملة PATH ونفس.

على أنظمة ويندوز، وPYTHONPATH النموذجية على النحو التالي:

set PYTHONPATH=c:\python20\lib;

على أنظمة يونيكس، وPYTHONPATH النموذجية على النحو التالي:

set PYTHONPATH=/usr/local/lib/python


مساحات ونطاقات

المتغير هو اسم الكائن لديه مطابقة (المعرف). مساحة الاسم هو المتغير الذي يحتوي على اسم لها (مفتاح) والأشياء كل منها هي (القيمة) من القواميس.

تعبير بيثون يمكن الوصول إلى متغير مساحة مساحة المحلي والعالمي. إذا متغير محلي بنفس الاسم عالمي متغير، والمتغير المحلي تجاوز المتغير العالمي.

كل وظيفة لها مساحة خاصة بها. قواعد نطاق وسائل الطبقة ويعمل بشكل طبيعي.

بيثون تخمين ذكي متغير محلي أو عالمي، فمن المفترض أن أي متغير ضمن مهمة وظيفة غير المحلي.

لذلك، إذا كنت تعطي المهام المتغيرة العالمية في وظيفة، يجب عليك استخدام العبارة العالمي.

التعبير VARNAME العالمي يقول بيثون، VARNAME هو المتغير العالمي، لذلك بيثون لا يجد هذا المتغير في مساحة الاسم المحلي.

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

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
Money = 2000
def AddMoney():
   # 想改正代码就取消以下注释:
   # global Money
   Money = Money + 1
 
print Money
AddMoney()
print Money


دير وظيفة ()

الدالة dir () هي قائمة سلاسل الصف تسلسل جيد، والمحتوى هو اسم معرف وحدة.

بإرجاع قائمة من جميع وحدات لاستيعاب المتغيرات والوظائف المحددة في وحدة نمطية. وهناك مثال بسيط هو كما يلي:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 导入内置math模块
import math
 
content = dir(math)
 
print content;

أمثلة من إخراج أعلاه:

['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 
'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 
'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log',
'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 
'sqrt', 'tan', 'tanh']

هنا، سلسلة خاصة __name__ متغير اسم نقطة وحدة، __ نقطة file__ لاستيراد اسم ملف الوحدة النمطية.



غلوبالس () والسكان المحليين () وظيفة

اعتمادا على المكالمات المحلية، غلوبالس () والسكان المحليين () وظيفة يمكن أن تستخدم لإرجاع اسم مساحة الاسم العالمي والمحلي.

إذا كنت استدعاء السكان المحليين داخل وظيفة ()، وعوائد يمكن الوصول إلى كافة وظائف في الاسم.

إذا كنت استدعاء غلوبالس () داخل الدالة بإرجاع كافة الأسماء وظيفة في الحصول على الطاقة العالمي.

كلا الدالات بإرجاع النوع هو القاموس. حتى اسم نستخدم مفاتيح () إزالة وظيفة.



تحديث الصفحة وظيفة ()

عند تقديم وحدة نمطية في أعلى جزء حدة النصي من قانون يتم تنفيذه مرة واحدة فقط.

لذا، إذا كنت ترغب في إعادة تنفيذ-وحدة في الجزء العلوي من التعليمات البرمجية، يمكنك استخدام وظيفة تحديث (). سيتم هذه الوظيفة يعاد استيرادها قبل وحدة المستوردة. بناء الجملة كما يلي:

reload(module_name)

هنا، MODULE_NAME اسم الوحدة النمطية لتوضع مباشرة، بدلا من سلسلة. على سبيل المثال، تريد تجاوز الوحدة مرحبا، على النحو التالي:

reload(hello)


حزم بيثون

حزمة هي بنية الدليل الهرمي، الذي يحدد مجموعة الأطفال من قبل وحدات ومجموعات فرعية، والحزم الفرعية تحت المكونات الأخرى للبيئة التطبيق بيثون.

النظر في ملف pots.py في دليل الهاتف. هذا الملف يحتوي على شفرة المصدر التالية:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
def Pots():
   print "I'm Pots Phone"
   

وبالمثل، لدينا اثنين من وظائف مختلفة لحفظ الملف:

  • هاتف / Isdn.py تحتوي على ISDN وظيفة ()
  • هاتف / G3.py تحتوي على وظيفة G3 ()

الآن، قم بإنشاء __init__.py الملف في دليل الهاتف:

  • هاتف / __ init__.py

عند استيراد الهاتف، ليكون قادرا على استخدام كل الوظائف التي تحتاج إليها لاستخدام البيانات استيراد واضحة في السنوات __init__.py، على النحو التالي:

from Pots import Pots
from Isdn import Isdn
from G3 import G3

عند إضافة رمز إلى __init__.py، حزمة الهاتف المستوردة عند هذه الفئات هي كل ما هو متاح على شبكة الانترنت.

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 导入 Phone 包
import Phone
 
Phone.Pots()
Phone.Isdn()
Phone.G3()

أمثلة من إخراج أعلاه:

I'm Pots Phone
I'm 3G Phone
I'm ISDN Phone

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