טיש פון קאָנטענץ[באַהאַלטן][ווייַזן]
- 1. וואָס איז פּיטהאָן סקריפּטינג, און ווי איז עס אַנדערש פון פּיטהאָן פּראָגראַממינג?
- 2. ווי טוט פּיטהאָן ס מיסט זאַמלונג אַרבעט?
- 3. דערקלערן די חילוק צווישן אַ רשימה און אַ טופּלע
- 4. וואָס זענען רשימה קאַמפּרעשאַנז און געבן אַ בייַשפּיל פון זייער באַניץ?
- 5. באַשרייַבן די חילוק צווישן דיפּקאָפּי און קאָפּיע?
- 6. ווי איז מולטיטהרעאַדינג אַטשיווד אין פּיטהאָן און ווי איז עס אַנדערש פון מולטיפּראָסעססינג?
- 7. וואָס זענען דעקערייטערז און ווי זענען זיי געניצט אין פּיטהאָן?
- 8. דערקלערן די דיפעראַנסיז צווישן *אַרגס און **קוואַרגס?
- 9. ווי וואָלט איר ענשור אַז אַ פֿונקציע קען נאָר זיין גערופן אַמאָל מיט דעקערייטערז?
- 10. ווי טוט ירושה אַרבעט אין פּיטהאָן?
- 11. וואָס איז אופֿן אָוווערלאָודינג און אָוווערריידינג?
- 12. באַשרייַבן דעם באַגריף פון פּאָלימאָרפיסם מיט אַ בייַשפּיל.
- 13. דערקלערן די חילוק צווישן בייַשפּיל, קלאַס און סטאַטיק מעטהאָדס.
- 14. באַשרייַבן ווי אַ פּיטהאָן שטעלן אַרבעט ינעווייניק.
- 15. ווי איז אַ ווערטערבוך ימפּלאַמענאַד אין פּיטהאָן?
- 16. דערקלערן די בענעפיץ פון ניצן געהייסן טופּלעס.
- 17. ווי טוט די פּרובירן-חוץ בלאָק אַרבעט?
- 18. וואָס איז די חילוק צווישן כאַפּן און באַשטעטיקן סטייטמאַנץ?
- 19. ווי טאָן איר לייענען און שרייַבן דאַטן פון אַ ביינערי טעקע אין פּיטהאָן?
- 20. דערקלערן די מיט ויסזאָגונג און זייַן אַדוואַנטידזשיז ווען ארבעטן מיט טעקע איך / אָ.
- 21. ווי וואָלט איר שאַפֿן אַ סינגלעטאָן מאָדולע אין פּיטהאָן?
- 22. נאָמען אַ ביסל וועגן צו אַפּטאַמייז זכּרון באַניץ אין אַ פּיטהאָן שריפט.
- 23. ווי וואָלט איר עקסטראַקט אַלע בליצפּאָסט אַדרעסעס פון אַ געגעבן שטריקל ניצן רעגעקס?
- 24. דערקלערן די פאַבריק פּלאַן מוסטער און זייַן אַפּלאַקיישאַן אין פּיטהאָן
- 25. וואָס איז די חילוק צווישן אַ יטעראַטאָר און אַ גענעראַטאָר?
- 26. ווי טוט די @פּראָפּערטי דעקערייטער אַרבעט?
- 27. ווי וואָלט איר מאַכן אַ יקערדיק REST API אין פּיטהאָן?
- 28. באַשרייַבן ווי צו נוצן די ריקוועס ביבליאָטעק צו מאַכן אַ HTTP POST בעטן.
- 29. ווי וואָלט איר פאַרבינדן צו אַ PostgreSQL דאַטאַבייס ניצן פּיטהאָן?
- 30. וואָס איז די ראָלע פון אָרמס אין פּיטהאָן און נאָמען אַ פאָלקס איינער?
- 31. ווי וואָלט איר פּראָפיל אַ פּיטהאָן שריפט?
- 32. דערקלערן די GIL (Global Interpreter Lock) אין CPython
- 33. דערקלערן פּיטהאָן ס אַסינק / דערוואַרטן. ווי איז עס אַנדערש פון טראדיציאנעלן טרעדינג?
- 34. באַשרייַבן ווי איר וואָלט נוצן Python's concurrent.futures.
- 35. פאַרגלייַכן Django און Flask אין טערמינען פון נוצן פאַל און סקאַלאַביליטי.
- סאָף
אין אַ צייט ווען טעכנאָלאָגיע יגזיסץ אין יעדער אַספּעקט פון אונדזער לעבן, פּיטהאָן סקריפּטינג ימערדזשיז ווי אַ שליסל קאָמפּאָנענט פון די ריזיק און ינטראַקאַט IT ינפראַסטראַקטשער, ינשורינג אַ פּעראַדיים פון יז פון נוצן און נוציקייט.
די שטאַרקייט פון Python ריזיידז ניט בלויז אין זיין סינטאַקטיש פּאַשטעס און רידאַביליטי, אָבער אויך אין זיין אַדאַפּטאַבילאַטי, וואָס אַלאַוז עס צו בריק די ריס צווישן נידעריק-ריזיקירן, אָנהייבער-מדרגה סקריפּטינג און הויך-סטייקס, פאַרנעמונג-מדרגה ווייכווארג אַנטוויקלונג מיט יז.
Python ס ברייט לייברעריז און פראַמעוואָרקס ויסברוקירן דעם וועג פֿאַר אַ פליסיק, ימאַדזשאַנאַטיוו טעכניש פּאַסירונג, צי עס איז אין די געביטן פון דאַטן אַנאַליסיס, וועב אַנטוויקלונג, קינסטלעך סייכל אָדער נעץ סערווערס.
אין אַדישאַן צו זיין אַ געצייַג פֿאַר פּראָבלעם סאַלווינג, פּיטהאָן אויך פאָוטערז אַן אַטמאָספער ווו כידעש איז ניט בלויז עמברייסט אָבער אויך געוויינטלעך ינקאָרפּערייטיד דאַנק צו זייַן ריזיק לייברעריז און פראַמעוואָרקס, אַזאַ ווי Django פֿאַר וועב אַנטוויקלונג אָדער פּאַנדאַס פֿאַר דאַטן אַנאַליסיס.
אין אַ וועלט ווו דאַטן זענען מלך, Python גיט שטאַרק מכשירים פֿאַר מאַניפּיאַלייטינג, אַנאַלייזינג און וויזשוואַלייזינג דאַטן, ריזאַלטינג אין אַקטיאָנאַבלע ינסייץ און גיידינג סטראַטידזשיק ברירות.
פּיטהאָן איז נישט בלויז אַ פּראָגראַממינג שפּראַך; עס איז אויך אַ טרייווינג קהל, אַ כאַב ווו דעוועלאָפּערס, דאַטן סייאַנטיס און טעק ענטוזיאַסץ קומען צוזאַמען צו אויסטראַכטן, שאַפֿן און נעמען די IT אינדוסטריע צו דער ווייַטער מדרגה.
פּיטהאָן דעוועלאָפּערס זענען געזוכט דורך געשעפטן פון אַלע סיזעס, פון פלעגאַלינג סטאַרטאַפּס צו געזונט-געגרינדעט אָרגאַנאַזיישאַנז, ווי קאַטאַליסץ פֿאַר כידעש, פּראָצעס פֿאַרבעסערונג און ימפּרוווד קונה דינסט.
אַדדיטיאָנאַללי, די אָפֿן-מקור נאַטור פאָסטערס אַ קולטור פון שערד לערנען און קאַלאַבערייטיוו וווּקס, געראַנטיד אַז עס וועט פאָרזעצן צו שטייַגן מיט די ראַפּאַדלי טשאַנגינג טעקנאַלאַדזשיקאַל וועלט.
לערנען פּיטהאָן אין 2023 איז אַ ינוועסמאַנט אין אַ שפּראַך וואָס הבטחות צו בלייַבן קראַנט, פלעקסאַבאַל און יקערדיק פֿאַר אָנפירונג די עבז און פלאָוז פון טעכנאָלאָגיע.
עס גיט צוטריט צו די פעלדער פון מאַשין וויסן, דאַטן אַנאַליטיקס, סייבערסעקוריטי און מער, אַלע וואָס זענען קריטיש צו פאָרעם די דיגיטאַל טקופע.
דעריבער, מיר האָבן צונויפגעשטעלט אַ רשימה פון די בעסטער פּיטהאָן סקריפּטינג אינטערוויו פראגעס פֿאַר איר, וואָס וועט געבן איר צו שייַנען ווי אַ דעוועלאָפּער און באַקומען דעם אינטערוויו.
1. וואָס איז פּיטהאָן סקריפּטינג, און ווי איז עס אַנדערש פון פּיטהאָן פּראָגראַממינג?
פּיטהאָן איז באַוווסט פֿאַר זיין אַדאַפּטאַבילאַטי און גיט ביידע סקריפּטינג און פּראָגראַממינג סקילז, יעדער פּאַסיק פֿאַר באַזונדער דזשאָבס און גאָולז.
פּיטהאָן סקריפּטינג איז פאַנדאַמענטאַלי דער פּראָצעס פון שרייבן קירצער, מער עפעקטיוו סקריפּס וואָס זענען בדעה צו פירן טעקעס, אָטאַמייט ריפּעטיטיוו פּראַסעסאַז אָדער געשווינד פּראָוטאַטייפּ געדאנקען.
ד י דאזיק ע שריפטן , װעלכ ע זײנע ן אפטמא ל שטײענדיק , פיר ן עפע ס א ליסט ע אקציע ם אי ן ארדענונג .
פּיטהאָן פּראָגראַממינג, אויף די אנדערע האַנט, גייט ווייַטער, עמפאַסייזינג די שאַפונג פון ביגער, מער ינטראַקאַט מגילה מיט סטראַקטשערד קאָד ניצן לייברעריז, פראַמעוואָרקס און בעסטער פּראַקטיסיז.
כאָטש זיי ביידע קומען פון דער זעלביקער שפּראַך, סקריפּטינג סימפּלאַפייז און אָטאַמייץ בשעת פּראָגראַממינג קריייץ און ינווענטיז. דעם חילוק קענען זיין געזען אין די פאַרנעם און צילן פון יעדער דיסציפּלין.
2. ווי טוט פּיטהאָן ס מיסט זאַמלונג אַרבעט?
א שליסל עלעמענט אין ינשורינג עפעקטיוו זכּרון פאַרוואַלטונג איז Python ס מיסט זאַמלונג סיסטעם.
עס טיירלאַסלי אַרבעט אין דער הינטערגרונט צו באַשיצן סיסטעם רעסורסן פון אָוווערראַן דורך זכּרון ליקס. דער אָטאַמייטיד צוגאַנג איז באזירט מערסטנס אויף דער רעפֿערענץ קאַונטינג אופֿן, ווו יעדער כייפעץ האלט שפּור פון ווי פילע אנדערע אַבדזשעקץ זענען רעפערענסינג עס.
דער כייפעץ ווערט אַ קאַנדידאַט פֿאַר זכּרון רעקלאַמיישאַן ווען די ציילן פאלן צו 0, וואָס ינדיקייץ אַז די נומער איז ניט מער פארלאנגט.
אין אַדישאַן, Python ניצט אַ סייקליק מיסט קאַלעקטער, וואָס די פּשוט רעפֿערענץ ציילן צוגאַנג קען פאַרפירן, צו געפֿינען און ויסמעקן רעפֿערענץ סייקאַלז.
אזוי, די רעפֿערענץ קאַונטינג און סייקליק מיסט זאַמלונג צוויי-לייערד סטראַטעגיע גיט אַ אָפּגעהיט און עפעקטיוו נוצן פון זכּרון, פֿאַרשטאַרקונג פּיטהאָן ס פאָרשטעלונג, ספּעציעל אין זכּרון-אינטענסיווע אַפּלאַקיישאַנז.
א פּשוט קאָד מוסטער וואָס ווייַזן ווי צו פאַרבינדן מיט Python ס מיסט זאַמלונג סיסטעם איז צוגעשטעלט אונטן:
צוויי אַבדזשעקץ זענען דזשענערייטאַד אין דעם עקסערפּט און קרייז-רעפעראַנסט צו פאַרלייגן אַ ציקל. דער מיסט קאַלעקטער איז מאַניואַלי טריגערד ניצן gc.collect(), וואָס ווייַזן ווי פּראָוגראַמערז קענען אָנטייל נעמען מיט Python ס זכּרון פאַרוואַלטונג מעקאַניזאַם ווי נייטיק.
3. דערקלערן די חילוק צווישן אַ רשימה און אַ טופּלע
רשימות און טופּלעס זענען עפעקטיוו קאַנטיינערז פֿאַר דאַטן אין די פּיטהאָן וועלט, אָבער זיי האָבן פאַרשידענע פּראָפּערטיעס וואָס טרעפן פאַרשידענע פּראָגראַממינג צוועקן.
א רשימה, דינאָוטאַד דורך קוואַדראַט בראַקאַץ, ינייבאַלז בייגיקייַט דורך אַלאַוינג די טשאַנגינג און דינאַמיש רעסיזינג פון זייַן קאַמפּאָונאַנץ.
א טופּלע ענקלאָוזד אין קלאַמערן, אויף די אנדערע האַנט, איז ימיוטאַבאַל און מיינטיינז זייַן ערשט שטאַט בשעת די פֿונקציע איז עקסאַקיוטאַד.
טופּלעס געבן אַ האַרט, ימיוטאַבאַל סיקוואַנס כוועראַז רשימות פאָרשלאָגן בייגיקייַט, אַלאַוינג פֿאַר אַ פאַרשיידנקייַט פון ניצט אין דאַטן פּראַסעסינג און מאַדאַפאַקיישאַן.
דאָ איז אַ ביסל פּיטהאָן קאָד מוסטער וואָס ווייַזן ווי צו נוצן ביידע רשימות און טופּלעס:
4. וואָס זענען רשימה קאַמפּרעשאַנז און געבן אַ בייַשפּיל פון זייער באַניץ?
רשימה קאַמפּרעשאַן איז אַן עפעקטיוו און יקספּרעסיוו וועג צו שאַפֿן רשימות אין פּיטהאָן וואָס פאַרבינדן די מאַכט פון קאַנדישאַנאַל לאָגיק און לופּס אין אַ איין, פאַרשטיייק שורה פון קאָד.
זיי צושטעלן אַ סימפּלאַפייד סינטאַקס צו גער אונדזער ינטענץ אין אַ רשימה, קאַמביינינג יטעראַטיאָן און קאַנדישאַנאַליטי אין אַ איין ראַפינירט סטרוקטור.
רשימה קאַמפּרעשאַן בייסיקלי געבן פּראָוגראַמערז די פיייקייט צו שאַפֿן רשימות דורך עקסאַקיוטינג אַפּעריישאַנז אויף יעדער מיטגליד און אפֿשר פילטערינג זיי דיפּענדינג אויף זיכער קרייטיריאַ, אַלע בשעת זיי האַלטן אַ ציכטיק קאָדעבאַסע.
דעם יקספּרעסיוו שטריך קאַמביינז עפעקטיווקייַט מיט קלעריטי אין פּיטהאָן פּראָגראַממינג דורך ימפּרוווינג רידאַביליטי און עפשער צושטעלן קאַמפּיוטיישאַנאַל גיינז אין עטלעכע צושטאנדן.
א געמעל פון אַ פּיטהאָן רשימה קאַמפּריכענשאַן איז געוויזן אונטן:
5. באַשרייַבן די חילוק צווישן דיפּקאָפּי און קאָפּיע?
די טיפקייַט און אָרנטלעכקייַט פון די דופּליקייטיד אַבדזשעקץ באַשטימען די חילוק צווישן deepcopy
און copy
אין פּיטהאָן.
דורך קריייטינג אַ נייַ נומער בשעת בעכעסקעם באַווייַזן צו די אָריגינעל נעסטעד אַבדזשעקץ, אַ copy
קריייץ אַ פּליטקע רעפּליקע וואָס וויווז זייער גורל צוזאַמען אין אַ וועב פון ינטערדעפּענדענסע.
Deepcopy
קריייץ אַ טאָוטאַלי אָטאַנאַמאַס קלאָון דורך רעקורסיוולי קאַפּיינג דער אָריגינעל כייפעץ און אַלע זייַן כייעראַרקאַקאַל קאַמפּאָונאַנץ, קאַטינג אַלע קאַנעקשאַנז און האַלטן זעלבסט-פאַרוואַלטונג אין ענדערונגען.
דעריבער, דיפּענדינג אויף די פארלאנגט מדרגה פון כייפעץ זעלבסטשטענדיקייַט, deepcopy
אַשורז אַ פולשטענדיק רעפּראָדוקציע, כאָטש קאָפּיע נאָר גיט אַ דופּליקיישאַן אויף די ייבערפלאַך.
דאָ איז עטלעכע קאָד צו ווייַזן ווי copy
און deepcopy
אַנדערש פון איינער דעם אנדערן:
6. ווי איז מולטיטהרעאַדינג אַטשיווד אין פּיטהאָן און ווי איז עס אַנדערש פון מולטיפּראָסעססינג?
פּיטהאָן ס מולטיפּראָסעססינג און מולטיטהרעאַדינג ביידע אַדרעס קאַנקעראַנט דורכפירונג, אָבער ניצן פאַרשידענע פּעראַדימז.
ניצן פילע פֿעדעם אין אַ איין פּראָצעס, מולטיטהרעאַדינג ינייבאַלז קאַנקעראַנט אַרבעט דורכפירונג אין אַ שערד זכּרון פּלאַץ.
אָבער, עכט פּאַראַלעל פאָדעם דורכפירונג קען זיין שווער צו דערגרייכן ווייַל פון פּיטהאָן ס גלאבאלע ינטערפּרעטער לאַק (GIL).
אויף די אנדערע האַנט, מולטיפּראָסעססינג ניצט עטלעכע פּראַסעסאַז, יעדער מיט אַ באַזונדער פּיטהאָן יבערזעצער און זכּרון פּלאַץ, ינשורינג אמת פּאַראַלעליזאַם.
פֿאַר I / O-געבונדן אַקטיוויטעטן, מולטיטהרעאַדינג איז מער לייטווייט און פּראַקטיש, אָבער מולטיפּראָסעססינג יקסעלז אין קפּו-געבונדן סיטואַטיאָנס ווו פאַקטיש פּאַראַלעל דורכפירונג איז קריטיש.
דאָ איז אַ קורץ קאָד מוסטער וואָס קאַנטראַסט מולטיפּראָסעססינג ווס מולטיטהרעאַדינג:
7. וואָס זענען דעקערייטערז און ווי זענען זיי געניצט אין פּיטהאָן?
אין פּיטהאָן, דעקערייטערז עלעגאַנטלי פאַרבינדן נוציקייט און פּאַשטעס בשעת סאַטאַל פאַרגרעסערן אָדער טשאַנגינג פאַנגקשאַנז.
טראַכטן פון דעקערייטערז ווי אַ שלייער וואָס ביוטאַפלי ענוועלאַפּס אַ פֿונקציע, אַדינג צו זייַן קייפּאַבילאַטיז אָן טשאַנגינג זייַן יקערדיק נאַטור.
די ענטיטיז, דינאָוטיד דורך דעם סימבאָל @
, אָננעמען אַ פֿונקציע ווי אַרייַנשרייַב און רעזולטאַט אַ גאַנץ נייַ פֿונקציע, וואָס אָפפערס אַ סימלאַס מיטל צו מאָדיפיצירן פונקציע נאַטור.
דעקערייטערז געבן אַ ברייט קייט פון פֿעיִקייטן, פֿון לאָגינג צו אַקסעס קאָנטראָל, ימפּרוווינג די קאָד מיט נייַע לייַערס און האַלטן אַ קלאָר, פאַרשטיייק סינטאַקס.
דאָ איז אַ פּשוט ביישפּיל פון Python קאָד וואָס ווייַזן ווי דעקערייטערז זענען געניצט:
8. דערקלערן די דיפעראַנסיז צווישן *אַרגס און **קוואַרגס?
די פלעקסאַבאַל פּאַראַמעטערס פון Python *args
און **kwargs
לאָזן פאַנגקשאַנז צו רעכט נעמען אַ קייט פון אַרגומענטן.
א פונקציע קענען אָננעמען קיין נומער פון פּאָסיטיאָנאַל אַרגומענטן ניצן די *args
פּאַראַמעטער, וואָס גרופּעס זיי אין אַ טופּלע.
אין קאַנטראַסט, אַ פֿונקציע קענען אָננעמען קיין נומער פון קיווערד אַרגומענטן ניצן די **kwargs
פּאַראַמעטער, וואָס גרופּעס זיי אין אַ ווערטערבוך.
ביידע אַקט ווי טשאַנאַלז פֿאַר דינאַמיזאַם און בייגיקייַט אין פונקציע קאַנסטראַקשאַן און פאַך, **kwargs
פאָרשלאָגן אַ סטראַקטשערד אופֿן פֿאַר האַנדלינג אַ אַרביטראַריש סומע פון קיווערד ינפּוץ בשעת *args
גראַציעז כאַנדאַלז אַנדעפינעד פּאָסיטיאָנאַל ינפּוץ.
צוזאַמען, זיי פֿאַרבעסערן די בייגיקייט און געווער פון פּיטהאָן פאַנגקשאַנז דורך סקילפאַלי און קלאר האַנדלינג אַ ברייט קייט פון אַפּלאַקיישאַן סינעריאָוז.
אַ ביישפּיל פון Python קאָד וואָס ניצט *args
און **kwargs
איז צוגעשטעלט אונטן:
9. ווי וואָלט איר ענשור אַז אַ פֿונקציע קען נאָר זיין גערופן אַמאָל מיט דעקערייטערז?
פּיטהאָן דעקערייטערז זענען אַדעפּט אין קאַמביינינג נוציקייט מיט עלאַגאַנס, וואָס איז דארף צו ענשור די יינציק פונקציע אין דורכפירונג.
עס איז מעגלעך צו פּלאַן אַ דעקערייטער צו אַרומנעמען אַ פֿונקציע און האַלטן די אינפֿאָרמאַציע ין דורך בעכעסקעם אַן ינערלעך שטאַט.
די ענקאַפּסאַלייטיד פֿונקציע איז גערופן אַמאָל, און עקסאַקיוטאַד, און דער דעקערייטער רעקאָרדס די רופן. סאַבסאַקוואַנט רופט זענען אפגעשטעלט, פּראַטעקטינג די פונקציע פון ריפּיטיד עקסאַקיושאַנז דורך ינשורינג עס איז נישט אויפגערודערט.
מיט דער הילף פון דעם אַפּלאַקיישאַן פון דעקערייטערז, פונקציאָנירן קאַללס קענען זיין קאַנטראָולד אויף אַ סאַטאַל אָבער עפעקטיוו וועג, געראַנטיד אייגנארטיקייט אין אַ שיין און אַנאַבטרוסיוו וועג.
דאָ איז אַ קאָד מוסטער צו ווייַזן ווי דעקערייטערז קענען זיין גענוצט צו באַגרענעצן די נומער פון מאל אַ פֿונקציע קענען זיין גערופֿן:
10. ווי טוט ירושה אַרבעט אין פּיטהאָן?
פּיטהאָן ס ירושה סיסטעם קריייץ אַ וועב פון כייראַרקאַקאַל פֿאַרבינדונגען צווישן קלאסן, אַלאַוינג קעראַקטעריסטיקס און פאַנגקשאַנז פון אַ פאָטער קלאַס צו זיין שערד מיט זיין זאמען.
עס מאַנידזשיז אַ ייכעס וואָס אַלאַוז דערייווד (קינד) קלאסן צו ירשענען, פאַרבייַטן אָדער לייגן פאַנגקשאַנאַליטי פון זייער באַזע (פאָטער) קלאסן, פּראַמאָוטינג קאָד רייוז און אַ לאַדזשיקאַל, כייעראַרקאַקאַל פּלאַן.
דער קינד קלאַס קענען באַקענען זיין יינציק פֿעיִקייטן און ביכייוויערז אין אַדישאַן צו אַבזאָרבינג קייפּאַבילאַטיז פון זיין פאָטער, קריייטינג אַ שטאַרק, מאַלטי-לייערד כייפעץ מאָדעל.
אין דעם צוגאַנג, ירושה סקילפאַלי דיסטריביוץ פאַנגקשאַנאַליטי איבער די אַרטעריעס פון די קלאַס כייעראַרקי, קריייטינג אַ יונאַפייד, געזונט-אָרגאַניזירט כייפעץ-אָריענטיד אַרקאַטעקטשער.
די פאלגענדע סימפּלאַפייד פּיטהאָן קאָד דעמאַנסטרייץ ירושה:
11. וואָס איז אופֿן אָוווערלאָודינג און אָוווערריידינג?
די צוויי קאָרנערסטאָון פון כייפעץ-אָריענטיד פּראָגראַממינג, אופֿן אָוווערלאָודינג און אופֿן אָוווערריידינג, געבן דעוועלאָפּערס צו נוצן די זעלבע אופֿן נאָמען פֿאַר עטלעכע צוועקן.
א איין אופֿן קענען אַקאַמאַדייט אַ פאַרשיידנקייַט פון דאַטן טייפּס און אַרגומענט קאַונץ דורך פילע סיגנאַטשערז דאַנק צו די אָוווערלאָודינג פון די מעטהאָדס.
אויף די אנדערע האַנט, אופֿן אָוווערריידינג אַלאַוז אַ סובקלאַס צו לייגן זיין אייגענע ספּעציעל ימפּלאַמענטיישאַן צו אַ אופֿן וואָס איז שוין דיפיינד אין זיין פאָטער קלאַס, געראַנטיד אַז די קינד 'ס ווערסיע איז גערופן.
צוזאַמען, די סטראַטעגיעס פֿאַרבעסערן די אַדאַפּטאַבילאַטי דורך געבן מעטאָד ביכייוויערז וואָס אָפענגען אויף קאָנטעקסט און די באַזונדער רעקווירעמענץ פון די אַפּלאַקיישאַן.
דאָ איז אַ מוסטער פון קאָד וואָס יגזאַמפּאַלז ביידע קאַנסעפּס:
12. באַשרייַבן דעם באַגריף פון פּאָלימאָרפיסם מיט אַ בייַשפּיל.
פּאָלימאָרפיסם איז די פיר פון ניצן אַ איין צובינד פֿאַר פאַרשידן דאַטן טייפּס.
דער געדאַנק ינשורז אַדאַפּטאַבילאַטי און סקאַלאַביליטי אין פּלאַן דורך געבן מעטהאָדס די פרייהייט צו פּראָצעס אַבדזשעקץ אין קייפל וועגן דיפּענדינג אויף זייער ינטרינסיק טיפּ אָדער קלאַס.
אין עסאַנס, פּאָלימאָרפיסם ינייבאַלז יונאַפייד ינטעראַקשאַנז בשעת בעכעסקעם בוילעט ביכייוויערז דורך אַלאַוינג אַבדזשעקץ פון פאַרשידענע קלאסן צו זיין גערעכנט ווי ינסטאַנסיז פון דער זעלביקער קלאַס דורך ירושה.
די דינאַמיש שטריך ינקעראַדזשאַז די פּאַשטעס פון קאָד דורך אַלאַוינג אַ איין פֿונקציע אָדער אָפּעראַטאָר צו ינטעראַקט מיט אַ פאַרשיידנקייַט פון אַבדזשעקץ אָן קיין פראבלעמען.
דאָ איז אַ קלאָר קאָד מוסטער וואָס דעמאַנסטרייץ פּאַלימאָרפיסם:
13. דערקלערן די חילוק צווישן בייַשפּיל, קלאַס און סטאַטיק מעטהאָדס.
פֿאַר בייַשפּיל, קלאַס און סטאַטיק מעטהאָדס אַלע האָבן זייער אייגענע בוילעט וועגן פון ינטעראַקטינג מיט כייפעץ און קלאַס דאַטן אין פּיטהאָן.
די מערסט פאַרשפּרייטע מין, בייַשפּיל מעטהאָדס, אַקט אויף קלאַס בייַשפּיל דאַטן און נעמען ווי אַרייַנשרייַב אַ בייַשפּיל פון די קלאַס, טיפּיקלי גערופן זיך.
דער קלאַס זיך (אָפט ריפערד צו ווי cls) איז אנגענומען ווי אַן אַרגומענט דורך קלאַס מעטהאָדס, וואָס זענען דינאָוטיד מיט @classmethod, און זיי מאַניפּולירן קלאַס-מדרגה דאַטן.
סטאַטיק מעטהאָדס, דינאָוטאַד דורך די האַש סימבאָל @staticmethod, טאָן ניט ווירקן קלאַס אָדער בייַשפּיל שטאַטן, ווייַל זיי זענען פריסטאַנדינג פאַנגקשאַנז קאַנטיינד אין די קלאַס און טאָן ניט נעמען זיך אָדער קלס ווי אַ ערשטער פּאַראַמעטער.
ווייַל יעדער מעטאָד טיפּ גיט פאַרשידענע אַקסעס און נוצן, כייפעץ-אָריענטיד אַרקאַטעקטשערז זענען פלעקסאַבאַל און גענוי.
ווי אַ ביישפּיל פון איינער פון די מעטהאָדס טייפּס אין קאָד:
14. באַשרייַבן ווי אַ פּיטהאָן שטעלן אַרבעט ינעווייניק.
אַן אינערלעכער דאַטן סטרוקטור גערופֿן אַ כאַשטאַבלע איז געניצט דורך אַ פּיטהאָן שטעלן, וואָס איז אַן אַנאָרדערד זאַמלונג פון בוילעט קאַמפּאָונאַנץ, צו דורכפירן שטאַרק און עפעקטיוו אַפּעריישאַנז.
Python ניצט אַ האַש פֿונקציע צו געשווינד פירן און צוריקקריגן דאַטן ווען אַן עלעמענט איז מוסיף צו אַ גאַנג, ווענדן דעם עלעמענט אין אַ האַש ווערט וואָס דעפינירן זיין אָרט אין זכּרון.
דורך פאַסילאַטייטינג שנעל מיטגלידערשאַפט טשעקס און רימוווינג דופּליקאַט איינסן, דעם טעכניק מאכט זיכער אַז יעדער עלעמענט אין אַ גאַנג איז יינציק און לייכט צוטריטלעך.
דעריבער, די טאָכיק אַרקאַטעקטשער פון שטעלט טענדז צו אַפּטאַמייז אַפּעריישאַנז ווי יוניאַנז, קראָסינגז און דיפעראַנסיז, ריזאַלטינג אין אַ קליין, עפעקטיוו דאַטן סטרוקטור.
דאָ איז אַ שטיק פון קאָד וואָס ווייַזן ווי צו ינטעראַקט מיט אַ פּיטהאָן שטעלן פשוט:
15. ווי איז אַ ווערטערבוך ימפּלאַמענאַד אין פּיטהאָן?
א כאַשטאַבלע דינט ווי דער יסוד פון אַ ווערטערבוך אין Python און אַלאַוז שנעל דאַטן ריטריוואַל און מאַניפּיאַליישאַן. דיקשאַנעריז זענען דינאַמיש, אַנאָרדערד זאַמלונגען פון שליסל-ווערט פּערז.
Python ניצט אַ האַש פֿונקציע צו רעכענען די האַש פון די שליסל ווען אַ שליסל-ווערט פּאָר איז ארויס, און לאָוקייטינג די אָרט פון די סטאָרידזש אַדרעס פון די ווערט אין זכּרון.
ווי די האַש פֿונקציע גלייך ווייזט דעם יבערזעצער צו די זכּרון אַדרעס, דעם פּלאַן אָפפערס שנעל אַקסעס צו דאַטן באזירט אויף שליסלען און איז אַסטאַנישינגלי עפעקטיוו אין ריטריוואַל, ינסערשאַן און דילישאַן אַפּעריישאַנז.
דעווס קענען פירן דאַטן לייכט און יפעקטיוולי ווייַל פון די ינטייסינג קאָמבינאַציע פון גיכקייַט און בייגיקייַט צוגעשטעלט דורך Python דיקשאַנעריז.
ליסטעד אונטן איז אַ קאָד מוסטער וואָס ווייַזן ווי צו נוצן אַ פּיטהאָן ווערטערבוך:
16. דערקלערן די בענעפיץ פון ניצן געהייסן טופּלעס.
די נוצן פון געהייסן טופּלעס אין פּיטהאָן קאַמביינז סקילפאַלי די יקספּרעסיוונאַס פון קלאסן מיט די פּאַשטעס פון טופּלעס, ריזאַלטינג אין אַ קליין, זיך-יקספּלאַנאַטאָרי דאַטן סטרוקטור.
די טראדיציאנעלן טופּלע איז עקסטענדעד דורך געהייסן טופּלעס, וואָס האַלטן די ימיוטאַביליטי און זיקאָרן עפעקטיווקייַט פון טופּלעס, בשעת אַדינג געהייסן פעלדער צו פֿאַרבעסערן קאָד רידאַביליטי און זיך-דיסקריפּשאַן.
געהייסן טופּלעס העכערן קלאָר, פאַרשטיייק און פּערפאָרמאַנט קאָד דורך גרינדן גלייך, לייטווייט אַבדזשעקץ אָן קיין מעטהאָדס, ימפּרוווינג ביידע די דעוועלאָפּער דערפאַרונג און קאַמפּיוטיישאַנאַל פאָרשטעלונג.
ווי אַ רעזולטאַט, געהייסן טופּלעס אַנטוויקלען אין אַ שטאַרק געצייַג וואָס ימפּרוווז דאַטן סטרוקטור און רידאַביליטי אָן קאַמפּראַמייזינג גיכקייַט.
א קאָד מוסטער יללוסטראַטינג די נוצן פון געהייסן טופּלעס איז געוויזן אונטן:
17. ווי טוט די פּרובירן-חוץ בלאָק אַרבעט?
דער פּרווון-אַחוץ בלאָק אַקט ווי אַ סענטינעל אין פּיטהאָן יקספּרעסיוו סינטאַקס, ווידזשאַלאַנטלי גאַרדינג קעגן רונטימע ירעגיאַלעראַטיז און האַלטן די דורכפירונג ס גלאַט לויפן טראָץ פּאָטענציעל פּראָבלעמס.
ווען אַ פּרובירן בלאָק ינקאַונטערז אַ טעות, די קאָנטראָל איז אויטאָמאַטיש טראַנספערד צו די צונעמען אַחוץ בלאָק, ווו די פּראָבלעם איז פאַרפעסטיקט דורך ריפּאָרטינג, פיקסיר אָדער טאָמער ריטראָווינג די ויסנעם.
דורך האַנדלינג אויסנעמען אין אַ צילגעווענדט, קאַנטראָולד וועג, דעם סיסטעם ניט בלויז פּראַטעקץ קעגן דיסראַפּטיוו קראַשיז אָבער אויך ימפּרוווז באַניצער דערפאַרונג און דאַטן אָרנטלעכקייַט.
ווי אַ רעזולטאַט, די פּרווון-אַחוץ בלאָק בלענדיד טעות פאַרוואַלטונג מיט פּראָגראַם דורכפירונג, געראַנטיד אַפּלאַקיישאַן ראָובאַסטנאַס און פעסטקייַט.
דאָ איז אַ קליין מוסטער פון קאָד וואָס ניצט די פּרובירן-אַחוץ בלאָק:
18. וואָס איז די חילוק צווישן כאַפּן און באַשטעטיקן סטייטמאַנץ?
די כאַפּן און באַשטעטיקן סטייטמאַנץ אין די טעות האַנדלינג פון Python רעפּראַזענץ צוויי באַזונדער אָבער פֿאַרבונדענע אויסדרוקן פון ויסנעם פאַרוואַלטונג.
די raise
ויסזאָגונג גיט די פּראָגראַמיסט יקספּליסאַט קאָנטראָל איבער טעות אַרטיקלען און לויפן דורך אַלאַוינג זיי צו בפירוש פאַרשאַפן ספּעסיפיעד אויסנעמען.
Assert
, אויף די אנדערע האַנט, אקטן ווי אַ דיבאַגינג געצייַג דורך אויטאָמאַטיש דזשענערייטינג אַן AssertionError
אויב די קאָראַספּאַנדינג צושטאַנד איז נישט צופֿרידן, געראַנטיד אַז די פּראָגראַם פּערפאָרמז ווי בדעה בעשאַס אַנטוויקלונג.
Assert
פשוט טשעקס טנאָים, ימפּרוווינג דיבאַגינג און וואַלאַדיישאַן, כוועראַז פאַרגרעסערן ינייבאַלז ברייט, מער יקספּליסאַט קאָנטראָל. ביידע כאַפּן און באַשטעטיקן דערלויבן קאַנטראָולד ויסנעם פּראָדוקציע.
דאָ איז עטלעכע מוסטער קאָד וואָס ווייַזן ווי צו נוצן raise
און assert
:
19. ווי טאָן איר לייענען און שרייַבן דאַטן פון אַ ביינערי טעקע אין פּיטהאָן?
ניצן די געבויט-אין עפענען פונקציע מיט אַ ביינערי מאָדע ספּעסיפיער, ינטערפייסינג מיט ביינערי טעקעס אין פּיטהאָן ינטיילז אַ וואָג פון אַקיעראַסי און פּאַשטעס.
ניצן די rb
or wb
מאָדעס ווען עפן אַ ביינערי טעקע וועט ענשור אַז די דאַטן זענען באהאנדלט אין זייַן אַנקאָודיד, רוי פאָרעם ווען לייענען אָדער שרייבן ביינערי דאַטן.
דורך ניצן די מאָדעס, פּיטהאָן סימפּלאַפייז די פאַרוואַלטונג פון ניט-טעקסט דאַטן, אַזאַ ווי בילדער אָדער עקסעקוטאַבלע טעקעס, וואָס אַלאַוז פּראָוגראַמערז צו שעפּן און אַנאַלייז ביינערי דאַטן פּונקט און לייכט.
דעריבער, ביינערי טעקע אַפּעריישאַנז אין פּיטהאָן עפֿענען די טיר צו אַ ברייט קייט פון אַפּלאַקיישאַנז, אַרייַנגערעכנט דאַטן סיריאַליזיישאַן, בילד פּראַסעסינג און ביינערי אַנאַליסיס, צו דערמאָנען אַ ביסל.
ניצן אַ ביינערי טעקע, דעם בייַשפּיל פון קאָד ווייזט ווי צו לייענען און שרייַבן דאַטן:
20. דערקלערן די with
ויסזאָגונג און זייַן אַדוואַנטידזשיז ווען ארבעטן מיט טעקע י / אָ.
Python's with statement, וואָס איז אָפט געניצט מיט טעקע I / O, מאכט זיכער אַז רעסורסן זענען כאַנדאַלד יפעקטיוולי דאַנק צו דעם געדאַנק פון קאָנטעקסט פאַרוואַלטונג.
ווען איר האַנדלען מיט טעקעס, with
דער דערקלערונג גלייך קלאָוזיז די טעקע נאָך נוצן, אפילו אויב אַ ויסנעם אַקערז בשעת די אַקציע איז דורכגעקאָכט, פּראַטעקטינג קעגן מיטל ליקס און גאַראַנטירן אַ ריין טערמאַניישאַן.
דורך ילימאַנייטינג באָילערפּלאַטע קאָד, דעם סינטאַקטיק צוקער ימפּרוווז קאָד רידאַביליטי. עס אויך ינקריסיז פאַרלאָזלעך און פּאַשטעס דורך ינטאַגרייטינג מיטל פאַרוואַלטונג און ויסנעם האַנדלינג.
ווי אַ רעזולטאַט, די מיט ויסזאָגונג ווערט יקערדיק פֿאַר ינשורינג אַז דיין טעקע אַפּעריישאַנז זענען פאַרלאָזלעך און ריין קאַנטיינד, פּראַטעקטינג קעגן אַנפאָרסין פּראָבלעמס און ימפּרוווינג קאָד קלעריטי.
דאָ איז אַ בייַשפּיל פון קאָד וואָס ניצט די with
דערקלערונג אין טעקע אַפּעריישאַנז:
21. ווי וואָלט איר שאַפֿן אַ סינגלעטאָן מאָדולע אין פּיטהאָן?
א קאָמבינאַציע פון קלאַס מעטהאָדס און ינערלעך טשעקס זענען געניצט צו שאַפֿן אַ סינגלעטאָן מאָדולע אין פּיטהאָן, אַ פּלאַן מוסטער וואָס בלויז דערלויבט די שאַפונג פון אַ איין בייַשפּיל פון אַ קלאַס.
דורך האַלטן שפּור פון זיין אייגענע בייַשפּיל און צושטעלן אַ מעטאָד צו דזשענערייט אָדער צוריקקומען עס, אַ קלאַס גייט דעם מוסטער צו מאַכן זיכער אַז סאַבסאַקוואַנט ינסטאַנטיישאַנז רעפּלאַקייט דער ערשטער בייַשפּיל.
מיט אַ איין פונט פון קאָנטראָל, יונאַפייד אַקסעס צו רעסורסן און שוץ קעגן קאַמפּיטינג מאַניפּיאַליישאַנז, סינגלעטאָן אַשורז אַ איין פונט פון קאָנטראָל.
ווי אַ רעזולטאַט, עס דעוועלאָפּס אין אַ עפעקטיוו געצייַג פֿאַר ענקאַפּסאַלייטינג שערד רעסורסן, געראַנטיד קאָנסיסטענט אַקסעס און מאָדיפיקאַטיאָן אַריבער די פּראָגראַם.
דאָ איז אַ ביסל פּיטהאָן קאָד מוסטער דעמאַנסטרייטינג אַ סינגלעטאָן קלאַס:
22. נאָמען אַ ביסל וועגן צו אַפּטאַמייז זכּרון באַניץ אין אַ פּיטהאָן שריפט.
אַפּטאַמאַזיישאַן פון Python שריפט זכּרון קאַנסאַמשאַן אָפט ינטיילז אַ אָפּגעהיט באַלאַנסינג אַקט צווישן דאַטן סטרוקטור ברירה, אַלגערידאַם פֿאַרבעסערונג און מיטל פאַרוואַלטונג.
ווען איר אַרבעט מיט ריזיק דאַטאַסעץ, למשל, ניצן גענעראַטאָרס אלא ווי רשימות קענען באטייטיק מינאַמייז זיקאָרן נוצן דורך פויל אַססעסס די זאכן אויף די פליען אלא ווי האַלטן זיי אין זכּרון.
נאָך רידוסינג זיקאָרן נוצן איז מעגלעך דורך האַנדלינג נומעריקאַל דאַטן מיט מענגע דאַטן סטראַקטשערז אלא ווי רשימות און דורך ספּערינגלי ניצן __slots__
אין-קלאַס דעקלעריישאַנז צו קאָנטראָלירן די פאָרמירונג פון דינאַמיש אַטריביוץ.
אזוי, דורך באַלאַנסינג פאָרשטעלונג און מיטל נוצן, איר קענען ענשור אַז פּיטהאָן מגילה זענען נישט בלויז עפעקטיוו אָבער אויך פאַרטראַכט אין ווי פיל זכּרון זיי נוצן.
דאָ איז אַ קורץ בייַשפּיל פון קאָד וואָס ניצט אַ גענעראַטאָר צו רעדוצירן די סומע פון זיקאָרן געניצט:
23. ווי וואָלט איר עקסטראַקט אַלע בליצפּאָסט אַדרעסעס פון אַ געגעבן שטריקל ניצן רעגעקס?
רעגולער אויסדרוקן (רעגעקס) אין פּיטהאָן פאַרבינדן אַקיעראַסי און ווערסאַטילאַטי צו עקסטראַקט E- בריוו ווענדט פֿון אַ שטריקל, אַלאַוינג די דעוועלאָפּער צו פילטער דורך טעקסטשאַוואַל מאַטעריאַל און ידענטיפיצירן דיזייראַבאַל פּאַטערנז.
צו פאַרלייגן די סטרוקטור פון אַן E- בריוו אַדרעס, איינער קריייץ אַ רעגעקס מוסטער ניצן די שייַעך-מאָדולע. דערנאָך, איר קענען נוצן findall
צו באַקומען אַלע פאַנגקשאַנז פון די ציל שטריקל.
דעם אופֿן עקספּערטלי נאַוואַגייץ די טעקסטשאַוואַל מייז צו באַקומען אַלע פאַרבאָרגן E- בריוו ווענדט, וואָס ניט בלויז ספּידז די יקסטראַקשאַן פּראָצעס אָבער אויך אַשורז קערעקטנאַס.
רעגעקס קענען זיין סקילפאַלי געניצט צו יפעקטיוולי עקסטראַקט זיכער דאַטן פון סטרינגס, ינקריסינג די דאַטן פּראַסעסינג און אַנאַליסיס פון פּיטהאָן סקריפּס.
דאָ איז אַ שטיק פון קאָד וואָס ניצט רעגעקס צו עקסטראַקט ימיילז:
24. דערקלערן די פאַבריק פּלאַן מוסטער און זייַן אַפּלאַקיישאַן אין פּיטהאָן
די פונדאַמענטאַל יקער פון אַבדזשעקט-אָריענטיד פּראָגראַממינג, די פאַבריק פּלאַן מוסטער, איז די שאַפונג פון אַבדזשעקץ אָן יידענטאַפייינג די גענוי קלאַס פון די אַבדזשעקץ צו זיין דזשענערייטאַד.
די פאַקטאָרי מוסטער קענען זיין עלעגאַנטלי ימפּלאַמענאַד אין פּיטהאָן דורך קריייטינג אַ מעטאָד וואָס קערט ינסטאַנסיז פון עטלעכע קלאסן דיפּענדינג אויף אופֿן ינפּוץ אָדער קאַנפיגיעריישאַנז.
דער פּראָצעדור, וואָס איז מאל ריפערד צו ווי אַ "פאַבריק," אַקץ ווי אַ כאַב פֿאַר וויווינג עטלעכע קלאַס ינסטאַנסיז, געראַנטיד אַז אַבדזשעקץ זענען באשאפן אָן די קאַללער צו מאַניואַלי ינסטאַנטייט קלאסן.
אזוי, די פאַקטאָרי מוסטער מיינטיינז אַ דיקאָופּאַלד, סקאַלאַבלע אַרקאַטעקטשער בשעת ימפּרוווינג קאָד מאַדזשאַלעראַטי און קאָוכיסיוונאַס. עס אויך אָפפערס אַ סימפּלאַפייד טעכניק צו בויען אַבדזשעקץ.
25. וואָס איז די חילוק צווישן אַ יטעראַטאָר און אַ גענעראַטאָר?
עס איז קלאָר פון פּיטהאָן ס יטערייטערז און גענעראַטאָרס אַז ביידע קאַנסטראַקשאַנז מאַכן עס מעגלעך צו שלייף דורך וואַלועס, אָבער, עס זענען סאַטאַל דיפעראַנסיז אין ווי זיי זענען ימפּלאַמענאַד און געוויינט.
א גענעראַטאָר, וואָס איז אָפט יידענאַפייד דורך זייַן נוצן פון טראָגן, אויטאָמאַטיש מיינטיינז זיין שטאַט און איז ימפּלאַמענאַד מיט אַ פונקציע, פּראַוויידינג אַ קאַנסייס און זכּרון-עפעקטיוו וועג צו פּראָדוצירן וואַלועס אויף די פליען.
אַ יטעראַטאָר, וואָס איז טיפּיקלי ימפּלאַמענאַד ווי אַ קלאַס, ניצט מעטהאָדס ווי __iter__
און __next__
צו פירן זייַן יטעראַטיאָן שטאַט און פּראָדוצירן וואַלועס.
ווי אַ רעזולטאַט, יעדער האט זיין אייגענע מעריץ באזירט אויף די באַזונדער נוצן פאַל, מיט יטערייטערז פאָרשלאָגן אַ גרונטיק, אַבדזשעקט-אָריענטיד וועג צו דורכגיין דאַטן, בשעת גענעראַטאָרס פאָרשלאָגן אַ לייטווייט, פויל אפשאצונג טעכניק.
ביידע טעקניקס לייגן צו די אַרסענאַל פון די דעוועלאָפּער און מאַכן עס מעגלעך צו ויספאָרשן דאַטן געשווינד און יפעקטיוולי אין אַ פאַרשיידנקייַט פון סיטואַטיאָנס.
דאָ איז אַ שטיק פון קאָד פון אַ יטעראַטאָר און אַ גענעראַטאָר אין פּיטהאָן:
26. ווי קען דער @property
דעקערייטער אַרבעט?
די '@property' דעקערייטער אין פּיטהאָן פיעסעס אַ שיינע ניגון וואָס קאַנווערץ מעטאָד קאַללס אין אַטריביוט-ווי אַקסעס, ימפּרוווינג אַבדזשעקט וסאַביליטי און יקספּרעסיוונאַס.
א מעטאָד קענען זיין גערופֿן אָן קלאַמערן דורך ניצן @property, וואָס איז ענלעך צו אַקסעס אַן אַטריביוט. דעם קריייץ אַ קלירער און גרינגער-צו-נוצן צובינד פֿאַר כייפעץ ינטעראַקשאַן.
אַדדיטיאָנאַללי, עס אָפפערס אַ טויגיקייַט וואָג פון פאַנגקשאַנאַליטי און ענקאַפּסולאַטיאָן, פּראַטעקטינג אַבדזשעקץ שטאַטן און צושטעלן אַן ינטואַטיוו צובינד, וואָס אַלאַוז דעוועלאָפּערס צו ספּעציפיצירן אַטריביוץ מיט יז מיט געטער און סעטער מעטהאָדס.
דורך קאַמביינינג אופֿן פאַנגקשאַנאַליטי מיט אַטריביוט אַקסעסאַביליטי, די @property
דעקערייטער ימערדזשיז ווי אַ קריטיש געצייַג און אָפפערס אַ סטרייטפאָרווערד אָבער עפעקטיוו אַבדזשעקט ינטעראַקשאַן פּאַראַדיגם.
א ביישפּיל פון פּיטהאָן @property
דעקערייטער איז געוויזן אונטן:
27. ווי וואָלט איר מאַכן אַ יקערדיק REST API אין פּיטהאָן?
אין סדר צו בויען וועב באַדינונגס וואָס ינטעראַקט דורך הטטפּ ריקוועס, דעוועלאָפּערס אָפט נוצן די יקספּרעסיוו פיייקייט פון פראַמעוואָרקס ווי פלאַסק בשעת זיי בויען אַ פּשוט REST API אין פּיטהאָן.
מיט זיין פּשוט און פאַרשטיייק סינטאַקס, Flask ינייבאַלז דעוועלאָפּערס צו בויען רוץ וואָס קענען זיין אַקסעסט דורך אַ נומער פון הטטפּ מעטהאָדס, אַרייַנגערעכנט GET און POST, צו יבערגעבן מיט די אַנדערלייינג אַפּלאַקיישאַן.
א REST API געבויט מיט Flask קענען לייכט אָננעמען הטטפּ ריקוועס, פּראָצעס די קאַנטיינד דאַטן און צושטעלן באַטייַטיק אינפֿאָרמאַציע אין ענטפער דורך ספּעציפיצירן יינציק ענדפּאָינץ לינגקט מיט פאַרשידן פאַנגקשאַנאַליטי.
אין סדר צו ענשור סימלאַס קאָמוניקאַציע צווישן פאַרשידן ווייכווארג קאַמפּאָונאַנץ אין אַ נעטוואָרק סוויווע, דעוועלאָפּערס קענען נוצן שטאַרק REST APIs ניצן אַ קאָמבינאַציע פון Python און Flask.
דאָ איז אַ קליין שטיק פון קאָד וואָס ניצט פלאַש צו שאַפֿן אַ REST API:
28. באַשרייַבן ווי צו נוצן די ריקוועס ביבליאָטעק צו מאַכן אַ HTTP POST בעטן.
די ריקוועס ביבליאָטעק פון Python איז אַ שטאַרק געצייַג וואָס טראַנספאָרמז די שוועריקייטן פון הטטפּ קאָמוניקאַציע אין אַ וועלקאַמינג אַפּי און מאכט עס פּשוט און נאַטירלעך צו ינטעראַקט מיט אָנליין באַדינונגס ניצן HTTP POST ריקוועס.
א POST בעטן איז געמאכט דורך ניצן דעם פּאָסטן אופֿן, געבן די דעסטיניישאַן URL און אַטאַטשינג די מאַטעריאַל צו זיין געשיקט, וואָס קענען אַנטהאַלטן פאָרם דאַטן, JSON, טעקעס, און מער.
די ריקוועס ביבליאָטעק דאַן מאַנידזשיז די אַנדערלייינג הטטפּ קשר, שיקט די דאַטן צו די דעזיגנייטיד URL און קאַלעקטינג די ענטפער פון די סערווער צו געבן פליסיק וועב ינטעראַקשאַנז.
דעוועלאָפּערס קענען לייכט דינגען מיט אָנליין באַדינונגס, פאָרלייגן פאָרם דאַטן און צובינד מיט וועב אַפּיס דורך ריקוועס, ברידזשינג די ריס צווישן היגע אַפּפּס און די גלאבאלע וועב.
ניצן די ריקוועס ביבליאָטעק, די פאלגענדע קאָד מוסטער ווייַזן ווי צו שיקן אַ HTTP POST בעטן:
29. ווי וואָלט איר פאַרבינדן צו אַ PostgreSQL דאַטאַבייס ניצן פּיטהאָן?
ענגיידזשינג מיט אַ PostgreSQL דאַטאַבייס פֿון אַ פּיטהאָן סוויווע איז כאַנדאַלד עלעגאַנט דורך די psycopg2 פּעקל, אַ שטאַרק בריק וואָס אַלאַוז סימלאַס דאַטאַבייס ינטעראַקשאַנז.
דורך ניצן psycopg2
, פּראָוגראַמערז קענען לייכט שאַפֿן קאַנעקשאַנז, לויפן סקל קוויריז און באַקומען רעזולטאַטן, גלייך ינטאַגרייטינג די פיייקייט פון PostgreSQL אין פּיטהאָן מגילה.
איר קענען ופשליסן קאָמפּלעקס דאַטאַבייס פאַנגקשאַנז מיט בלויז אַ ביסל שורות פון קאָד, געראַנטיד אַז דאַטן זענען אַקסעסט, מאַדאַפייד און געראטעוועט מיט אַקיעראַסי און עפעקטיווקייַט.
דער מאָדולע אַלאַוז דעוועלאָפּערס צו גאָר נוצן ריליישאַנאַל דאַטאַבייסיז אין זייער אַפּלאַקיישאַנז דורך עלעגאַנט ריאַלייזינג די סינערדזשי צווישן Python און PostgreSQL.
דאָ איז דער מוסטער קאָד וואָס דעמאַנסטרייץ ווי צו נוצן די psycopg2
ביבליאָטעק צו פאַרלייגן אַ קשר צו אַ PostgreSQL דאַטאַבייס:
30. וואָס איז די ראָלע פון אָרמס אין פּיטהאָן און נאָמען אַ פאָלקס איינער?
אָבדזשעקט-ריליישאַנאַל מאַפּינג (ORM) אין פּיטהאָן ינייבאַלז דעוועלאָפּערס צו פאַרבינדן מיט דאַטאַבייסיז ניצן פּיטהאָן קלאסן און אַבדזשעקץ פּעראַדיימז.
עס אקטן ווי אַ האַרמאָניק פארמיטלער צווישן כייפעץ-אָריענטיד פּראָגראַממינג און ריליישאַנאַל דאַטאַבייס אַדמיניסטראַציע.
SQLAlchemy, איינער פון די מערסט באַוווסט אָרמס אין די פּיטהאָן סוויווע, אָפפערס אַ גאַנץ גאַנג פון מכשירים פֿאַר ינטעראַקטינג מיט קייפל סקל דאַטאַבייסיז ניצן הויך-מדרגה, כייפעץ-אָריענטיד סינטאַקס.
מיט די הילף פון SQLAlchemy, דאַטאַבייס ענטיטיז קענען זיין רעפּריזענטיד ווי פּיטהאָן קלאסן, מיט ינסטאַנסיז פון די קלאסן דינען ווי ראָוז אין דייטאַבייס טישן.
דאָס אַלאַוז פּראָוגראַמערז צו אַרבעטן מיט דאַטאַבייסיז אָן שרייבן קיין רוי סקל קוויריז.
רעכט צו דער קאַמפּלעקסיטי פון סקל און דאַטאַבייס קאַנעקטיוויטי, אָרמס ווי SQLAlchemy מאַכן עס מעגלעך פֿאַר מער באַניצער-פרייַנדלעך, זיכער און מיינטיינינג דייטאַבייס ינטעראַקשאַנז.
דאָ איז אַ פּשוט בייַשפּיל וואָס ווייַזן ווי SQLAlchemy אַרבעט:
31. ווי וואָלט איר פּראָפיל אַ פּיטהאָן שריפט?
א פּיטהאָן שריפט איז פּראָפילעד דורך אַנאַלייזינג זייַן קאַמפּיוטיישאַנאַל סטרוקטור און די צייט און פּלאַץ דעטאַילס פון זיין דורכפירונג אין סדר צו געפֿינען קיין מעגלעך פאָרשטעלונג באַטאַלנעקס און פֿאַרבעסערן עפעקטיווקייַט.
דעוועלאָפּערס קענען קערפאַלי פונאַנדערקלייַבן די נאַטור פון זייער קאָד בעשאַס רונטימע דורך ניצן די געבויט-אין cProfile
module.
דורך טאן אַזוי, זיי קענען באַקומען גרונטיק דאַטן וועגן פונקציע רופט, דורכפירונג צייט און רופן באציונגען, אַלאַוינג זיי צו ידענטיפיצירן און אַדרעס פאָרשטעלונג באַטאַלנעקס.
איר קענען גאַראַנטירן אַז קאָד נישט בלויז אַרבעט ריכטיק אָבער אויך יפישאַנטלי, באַלאַנסינג קאַמפּיוטינג רעסורסן און ימפּרוווינג די קוילעלדיק אַפּלאַקיישאַן פאָרשטעלונג, אַרייַנגערעכנט פּראָפילינג אין די אַנטוויקלונג לייפסייק.
דעוועלאָפּערס קענען דעריבער באַשיצן מגילה קעגן יניפעקטיווז דורך אָפּגעהיט פּראָפילינג, ינשורינג אַז זיי זענען רילייאַבלי טונד און פּערפאָרמינג אין אַ קייט פון קאַמפּיוטיישאַנאַל פאדערונגען.
דאָ איז אַ פּשוט בייַשפּיל פון Python שריפט פּראָפילינג ניצן די cProfile
מאָדולע:
32. דערקלערן די GIL (Global Interpreter Lock) אין CPython
די גלאבאלע ינטערפּרעטער לאַק (GIL) אין CPython פאַנגקשאַנז ווי אַ סענטינעל, געראַנטיד אַז בלויז איין פאָדעם לויפט פּיטהאָן ביטעקאָדע אין אַ צייט אין אַ איין פּראָצעס, אפילו אין מולטי-טרעדיד אַפּלאַקיישאַנז.
אפילו כאָטש עס קען זיין אַ באַטאַלנעק, די GIL איז קריטיש אין פּראַטעקטינג CPython ס זכּרון פאַרוואַלטונג און ינערלעך דאַטן סטראַקטשערז פון קאַנקעראַנט אַקסעס און פּראַזערווינג סיסטעם אָרנטלעכקייַט.
די נויט פֿאַר מולטיטהרעאַדינג אין I/O-געבונדן אַקטיוויטעטן, ווו פֿעדעם מוזן וואַרטן פֿאַר דאַטן צו זיין איבערגעגעבן אָדער באקומען, מוזן זיין געהאלטן אין זינען, ווייַל GIL טוט נישט עלימינירן דעם נויט.
אזוי, אפילו אויב GIL פּאָוזיז שוועריקייטן פֿאַר קפּו-געבונדן אַקטיוויטעטן, קאַמפּריכענשאַן פון זייַן נאַטור און אַדאַפּטיישאַן פון טעקניקס, ווי ניצן מולטיפּראָסעססינג אָדער קאַנקעראַנט פּראָגראַממינג, אַלאַוז דעוועלאָפּערס צו שאַפֿן עפעקטיוו, קאַנקעראַנט פּיטהאָן מגילה.
דאָ איז אַ ביישפּיל פון Python קאָד וואָס ניצט פֿעדעם און ווייַזן ווי GIL קען האָבן אַ ווירקונג אויף קפּו-געבונדן טאַסקס:
33. דערקלערן פּיטהאָן ס אַסינק / דערוואַרטן. ווי איז עס אַנדערש פון טראדיציאנעלן טרעדינג?
די אַסינק / דערוואַרטן סינטאַקס אין פּיטהאָן אָפּענס די וועלט פון ייסינגקראַנאַס פּראָגראַממינג, אַ פּאַראַדיגם וואָס אַלאַוז עטלעכע פאַנגקשאַנז צו קאָנטראָלירן די רונטימע סוויווע אַזוי אַז אנדערע אַקטיוויטעטן קענען זיין דורכגעקאָכט אין דער דערווייל, ימפּרוווינג פּראָגראַם עפעקטיווקייַט.
Async / await מיינטיינז אַקטיוויטעטן אין אַ איין פאָדעם אָבער ינייבאַלז די דורכפירונג צו שפּרינגען צווישן טאַסקס, אַשורינג ניט-בלאַקינג נאַטור אָן די קאַמפּלעקסיטי פון פאָדעם פאַרוואַלטונג.
דאָס איז אין קאַנטראַסט צו קלאַסיש טרעדינג, ווו פֿעדעם ויספירן אין פּאַראַלעל און אָפט דאַרפֿן קאָמפּליצירט פאַרוואַלטונג און סינגקראַנאַזיישאַן.
ווי אַ רעזולטאַט, דעוועלאָפּערס קענען שעפּן קאַנקעראַנט י / אָ-געבונדן אַקטיוויטעטן יפעקטיוולי און מיט אַ מער סטרייטפאָרווערד צוגאַנג צו קאַנטראָולינג קאַנקעראַנסי.
דאָס פּראַמאָוץ אַ קאָאָפּעראַטיווע מולטיטאַסקינג מאָדעל אין וואָס פּראַסעסאַז גערן טראָגן קאָנטראָל.
ווי אַ רעזולטאַט, אַסינק / אַווייט אָפפערס אַ אָפּשיידנדיק, סימפּלאַפייד וועג צו פּלאַן קאַנקעראַנט אַפּלאַקיישאַנז, ספּעציעל ווו איך / אָ אַפּעריישאַנז זענען פּראָסט, צו געפֿינען אַ וואָג צווישן פאָרשטעלונג און קאַמפּלעקסיטי.
א ביישפּיל פון Python קאָד וואָס ניצט אַסינק / דערוואַרטן איז צוגעשטעלט אונטן:
34. באַשרייַבן ווי איר וואָלט נוצן פּיטהאָן ס concurrent.futures
.
צובינד פֿאַר ייסינגקראַנאַס עקסאַקיוטינג קאַללאַבלעס דורך פֿעדעם אָדער פּראַסעסאַז, דעוועלאָפּערס קענען גראַציעז פירן ייסינגקראַנאַס און פּאַראַלעל אַפּעריישאַנז.
דער מאָדולע מאַנידזשיז די ריסאָרס אַלאַקיישאַן און דורכפירונג פון קאַללאַבלעס בשעת ענקאַפּסאַלייטינג די יידל אַספּעקץ פון טרעדינג און מולטיפּראָסעססינג דורך עקסעקוטאָרס (ThreadPoolExecutor און ProcessPoolExecutor).
דעוועלאָפּערס קענען יפעקטיוולי נוצן מאַלטי-האַרץ פּראַסעסערז פֿאַר קפּו-געבונדן אַקטיוויטעטן און צושטעלן ניט-בלאַקינג י / אָ אַפּעריישאַנז דורך שיקן טאַסקס צו אַן עקסאַקיוטער, וואָס קענען דעריבער דורכפירן זיי קאַנקעראַנטלי און אפילו צונויפגיסן זייער רעזולטאַטן.
אין סדר צו ענשור אַז אַפּלאַקיישאַנז זענען אָפּרופיק און פּערפאָרמאַנסע, concurrent.futures
קריייץ אַ פּלאַץ ווו קאָמפּלעקס חשבונות און י / אָ אַקטיוויטעטן קענען סמודלי צונויפגיסן.
דאָ איז אַ מוסטער פון קאָד וואָס ניצט concurrent.futures
:
35. פאַרגלייַכן Django און Flask אין טערמינען פון נוצן פאַל און סקאַלאַביליטי.
צוויי שטערן אין דער געשטערן פון פּיטהאָן ס וועב פראַמעוואָרקס, Django און Flask, יעדער שייַנען ברייטלי בשעת זיי טרעפן פאַרשידן דעוועלאָפּער רעקווירעמענץ.
פֿאַר פּראָוגראַמערז קריייטינג מאַסיוו, דאַטאַבייס-געטריבן אַפּלאַקיישאַנז, Django איז די געצייַג פון ברירה זינט עס קומט מיט אַן ORM און אַ געבויט-אין אַדמין צובינד.
אָבער, Flask ס פּשוט און מאַדזשאַלער פּלאַן גיט דעוועלאָפּערס די פרייהייט צו אויסקלייַבן זייער אייגענע קאַמפּאָונאַנץ, וואָס מאכט עס די שליימעסדיק ברירה פֿאַר קלענערער פּראַדזשעקס אָדער סיטואַטיאָנס ווו אַ לייטווייט, אַדאַפּטאַבאַל לייזונג איז יקערדיק.
ביידע פראַמעוואָרקס קענען זיין סקיילד צו אַקאַמאַדייט גרעסערע פאדערונגען ווען עס קומט צו סקאַלאַביליטי.
אָבער, די דאַר נאַטור פון Flask אַלאַוז קאַסטאַמייזד סקיילינג טאַקטיק וואָס זענען טיילערד צו באַזונדער באדערפענישן, בשעת די געבויט-אין קייפּאַבילאַטיז פון Django קענען געבן עס אַ קליינטשיק מייַלע פֿאַר שנעל אַנטוויקלונג אין ביגער, מער קאָמפּליצירט פּראַדזשעקס.
סאָף
פּיטהאָן סקריפּטינג ינטערוויוז דאַרפן אַ טיף וויסן פון די שפּראַך ס קייפּאַבילאַטיז, קאַמפּלעקסיטיז און אַפּלאַקיישאַנז.
א גרונטיק צוגרייטונג ניט בלויז סטרענגטאַנז די טעכניש קאַמפּאַטינס אָבער אויך ינספּיירז בטחון, העלפּינג אַפּליקאַנץ צו מאַך געשווינד און אַקיעראַטלי דורך די שווער מייז פון פֿראגן.
אַספּיראַנץ קענען מאַכן זיכער אַז זיי זענען צוגעגרייט צו שעפּן ביידע יקערדיק און געווענדט פּיטהאָן פּראָבלעמס דורך ריוויוינג שליסל געדאנקען ווי קאַנקעראַנסי, OOP פּרינסאַפּאַלז און דאַטן סטראַקטשערז, ווי געזונט ווי דייווינג אין פּראַקטיש אַפּלאַקיישאַנז ווי וועב פּראָגראַממינג און דאַטן מאַניפּיאַליישאַן.
ווי אַ רעזולטאַט, אַ געזונט-ראַונדיד בילדונג ווערט יקערדיק צו הצלחה און קענען פירן צו סיטואַטיאָנס ווו איינער ס פּיטהאָן פּראָגראַממינג אַבילאַטיז קענען יקסעל און זיין שעפעריש. זען האַשדאָרק ס אינטערוויו סעריע פֿאַר הילף מיט אינטערוויו צוגרייטונג.
לאָזן אַ ענטפֿערן