python - مشاريع - مكتبة اكواد بايثون




أكثر وحدات بايثون مفيدة من المكتبة القياسية؟ (12)

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

ما هي الوحدات التي تعتقد أنها ضرورية؟ على الرغم من أن الردود تختلف على الأرجح حسب os.path (برمجة الويب ، والعلوم ، وما إلى ذلك) ، فأنا أشعر أن هناك حاجة إلى بعض الوحدات عادة: math ، و sys ، و re ، و os ، و os.path ، و logging ،… وربما: collections ، struct ، ...

ما هي الوحدات التي تقترح تقديمها ، في فتحة لمدة ساعة أو ساعتين؟


os و os.path: لأن تلك هي الوحدات الأساسية التي سيطلبها أي شخص لكتابة برمجية مستقلة في python ويمكن للطلاب التبديل من برنامج نصي shell إلى python script بعد تعلم os و os.path.


أعتقد أن الجميع هنا حصلوا على جميع المهمات ، باستثناء sys . إذا نظرت إلى شفرة Python الفعلية ، فمن المحتمل أن تكون sys واحدة من الوحدات النمطية الأكثر استخدامًا (عادةً بسبب sys.version ).

أيضا ، انها ليست حقا وحدة نمطية ، ولكن أود أن أذكر __future__ .

ولا ينبغي لأحد استخدام بيثون دون import this .


أود أن أضيف urllib2 إلى القائمة.


إلقاء نظرة على PyMOTW (بيثون وحدة من الأسبوع). على الرغم من أنها ليست stdlib بدقة ، بل هو مورد كبير من الأحجار الكريمة واضحة وغير واضحة جدا من stdlib python. ما هو أكثر من ذلك ، كما أنه بمثابة وثائق ممتازة للوحدات المقدمة.


بالنسبة لطلاب العلوم ، ستكون وحدة الشبكات "نادراً" التي نادراً ما تكون مسموعة ولكنها قوية ذات قيمة. لكنهم بحاجة إلى تثبيته أولا. هذه الوحدة موثقة بشكل جيد: http://networkx.lanl.gov/index.html


ذلك يعتمد قليلاً على ما سيفعلونه وما هو المستوى الذي هم عليه. بعض الوحدات التي أود ذكرها لي عندما بدأت:

  • StringIO - لمنعهم من إعادة تشغيله ، وهو ما سيفعلوه إذا لم يكتشفوه.
  • تسجيل - لوضعها على الطريق الصحيح عندما يتعلق الأمر debug printouts
  • المخلل - لمنعهم من محاولة استخدام XML في كل مكان.
  • xml.etree.ElementTree - لحفظها من نموذج DOM عندما تحتاج بالفعل إلى العمل باستخدام XML.
  • pprint - لجعل الهياكل المتداخلة في python أقل تخويفًا.

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

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


سأقدم itertools و functools . هذه الوحدات تعمل على التجريدات الموجودة في كل مكان في البرمجة ، لذلك أعتقد أنها مفيدة للدراسة. من بين أشياء أكثر عملية ، يمكن أن تكون وحدات xml ( xml.dom و xml.sax ) مفيدة للغاية.


لا تنسَ عن datetime ، weakref ، pickle ، StringIO ، heapq ، قد تكون مترابطة.

و numpy أيضا يستحق الذكر ، على الرغم من أنه ليس من المكتبة القياسية.


من الصعب العيش بدون timeit

>>> # Python shell usage
... import timeit
>>> tt = timeit.Timer("foo = 'time this'", "print 'setup with this arg'")
>>> tt.timeit(number=1000)
setup with this arg
0.00021100044250488281
>>>

[[email protected] ~]$ # Bash shell usage
[[email protected] ~]$ # 5 runs with 1000 samples each.
[[email protected] ~]$ python -m timeit -n 1000 -r 5 -s "print 'setup w/ this arg'" \
    "foo = 'time this'"
setup w/ this arg
setup w/ this arg
setup w/ this arg
setup w/ this arg
setup w/ this arg
1000 loops, best of 5: 0.173 usec per loop
[[email protected] ~]$

ﺗﻌﺗﻣد اﻟوﺣدات اﻟﻧﻣطﯾﺔ اﻟﺗﻲ ﯾﺟب ﺗﻐطﯾﺗﮭﺎ ﻓﻲ ﻓﺗﺣﺔ ﺳﺎﻋﺗﯾن أو ﺳﺎﻋﺗﯾن اﻋﺗﻣﺎدًا ﮐﺎﻣﻼً ﻋﻟﯽ ﻣﺻﻟﺣﺔ اﻟﺟﻣﮭور أو اﻟﺗرﮐﯾز. ما هي الفصول الأخرى التي يأخذونها؟ ما هم على استعداد للاستفادة منها على الفور؟

تأكد من ذكر math ، decimal ، datetime time .

بالنسبة لأنواع تكنولوجيا المعلومات الذين سيقومون بعمل الملف الموجه: fnmatch و fnmatch و os و os.path و tempfile و shutil .

يجب أن يسمع الناس قاعدة البيانات حول sqlite و json .

قد يرغب جمهور المحاكاة في سماعها بشكل random .

يجب أن يسمع مطورو الويب عن urllib2 من وجهة نظر العميل. أيضا شوربة جميلة ومحلل XML من اختيارك.

يجب أن يسمع مطورو الويب عن logging و wsgiref من وجهة نظر الخادم.


operator ، بجوار ما سبق ذكره.





standard-library