שני שימושים לשתי כוכביות ב Python 3

24/05/2018

סימן השתי כוכביות עשוי להיות מוכר לכם מפעולת החזקה. שפות רבות וביניהן פייתון החליטו שסימן הכובע מבלבל מדי בשביל חזקה ולכן חיפשו משהו יותר ידידותי. שתי כוכביות נבחר בטח בגלל הקירבה לכפל:

>>> 2 ** 3
8

הטריק הזה עובד אגב גם ב Ruby, perl ואפילו JavaScript.

אבל השימוש השני אפילו יותר מעניין ולוקח השראה מהבחירה של Shells רבים להשתמש בשתי כוכביות כדי לציין Glob מקונן. לדוגמא ב zsh אפשר לכתוב את השורה הבאה כדי להציג את כל הקבצים בסיומת py בתיקיה הנוכחית ובכל תתי התיקיות:

$ ls **/*.py

גם ב Bash אפשר להפעיל את הפיצ'ר הזה באמצעות פקודת set באופן הבא:

$ set -e globstar
$ ls **/*.py

ופייתון 3 כולל גם הוא תמיכה ב Glob מקונן. התוכנית הבאה תמצא לכם את כל קבצי ה py בתיקיה הנוכחית ובכל תתי התיקיות שלה:

from pathlib import Path

for path in Path('.').glob('**/*.py'):
    print(path)

מכירים עוד שימושים לשתי כוכביות בפייתון? ספרו עליהם בתגובות.