Իմացեք Python- ը

Սովորեք պիթոն 7 ժամում: Python Lessons Ամբողջական դասընթաց սովորելու ծրագրավորում python-ում զրոյից

  1.   00: 00  Ներածություն պիթոնի դասերի ընթացքին
  2.   00: 45  Python-ի տեղադրում՝ առաջին ծրագիրը
  3.   10: 47  Փոփոխականներ, Փոփոխականներ w3s
  4.   20: 56  Տվյալների տեսակները pytho-ում
  5.   30: 02  Պայմանական հայտարարություններ if, elif, other
  6.   39: 03  Պայմանական հայտարարություններ 2
  7.   45: 53  Պայմանական օպերատորների պրակտիկա
  8.   56: 44  իսկ հանգույց
  9.   1: 12: 37  օղակի համար
  10.   1: 21: 23  A for loop, հանգույց օղակի մեջ
  11.   1: 29: 34  Ցուցակներ, ցուցակի տվյալների տեսակ
  12.   1: 41: 29  Ցուցակներ, ցուցակի տվյալների տիպի մեթոդներ
  13.   1: 53: 21  Tuples, բազմակի տվյալների տեսակ
  14.   2: 08: 42  Պրակտիկա python, os մոդուլ, քայլել ֆունկցիան
  15.   2: 21: 16  Def ֆունկցիաներ, սահմանում և կանչ
  16.   2: 30: 07  def ֆունկցիաներ, պարամետրեր և արգումենտներ
  17.   2: 43: 49  Գործառույթների փոփոխական թվով արգումենտներ, *args պարամետր
  18.   2: 56: 28  Գործառույթներ, փոփոխական շրջանակ
  19.   3: 08: 49  Գործառույթները և կոդի կառուցվածքը
  20.   3: 22: 07  Բառարաններ, տվյալների տեսակը dict
  21.   3: 37: 22  Բառարաններ, թելադրման մեթոդներ
  22.   3: 49: 21  Ֆայլեր կարդալ և գրել
  23.   4: 05: 29  Կոմպլեկտներ, սահմանել տվյալների տեսակը
  24.   4: 22: 30  Լարերը փախել են կերպարներից
  25.   4: 30: 17  Strings, str մեթոդներ
  26.   4: 43: 13  f-string, լարային ֆորմատավորում
  27.   4: 50: 10  Բացառության բեռնաթափում, փորձեք, բացառությամբ
  28.   5: 09: 59  Համատեքստի կառավարիչ as
  29.   5: 16: 19  Ներմուծեք մոդուլներ, եթե __name__ == «__main__»
  30.   5: 34: 58  Զառախաղ python Tkinter-ում
  31.   5: 56: 53  decorators
  32.   6: 10: 36  Ցուցակ, բառարան, գեներատորների հավաքածու
  33.   6: 30: 56  Գեներատորի արտահայտություն
  34.   6: 43: 03  Գեներատորի ֆունկցիա, եկամտաբերության հայտարարություն   
  35.   6: 51: 51  լամբդա ֆունկցիա

Python-ի դասեր սկսնակների համար զրոյից – ամբողջական դասընթաց Python-ում ծրագրավորում սովորելու համար: Python-ը հայտնի ծրագրավորման լեզու է։ Python-ը կարող է օգտագործվել սերվերի վրա՝ վեբ հավելվածներ ստեղծելու համար: Սովորեք python ծրագրավորման լեզուն անվճար, հիմունքներ զրոյից, ամբողջական python ուսուցման դասախոսությունների դասընթաց: Դասընթացի տեսանյութը ներառում է բոլոր հիմնական թեմաները օրինակներով և պրակտիկայով, որոնք անհրաժեշտ են կրտսեր python մշակողի համար: Դասընթացի վերջում դուք կիմանաք python-ի բոլոր հիմնական շարահյուսությունը և ազատ կլինեք գրել ձեր սեփական կոդը:

Python.org-ից

  • 1. Ախորժակի բացում
  • 2. Python Interpreter-ի օգտագործումը
    • 2.1. Թարգմանչին կանչելը
      • 2.1.1. Փաստարկի անցում
      • 2.1.2. Ինտերակտիվ ռեժիմ
    • 2.2. Թարգմանիչը և նրա միջավայրը
      • 2.2.1. Աղբյուրի կոդի կոդավորում
  • 3. Python-ի ոչ պաշտոնական ներածություն
    • 3.1: Python-ի օգտագործումը որպես հաշվիչ
      • 3.1.1. Թվեր
      • 3.1.2: strings
      • 3.1.3. Lուցակներ
    • 3.2. Առաջին քայլերը դեպի ծրագրավորում
  • 4. Կառավարման հոսքի ավելի շատ գործիքներ
    • 4.1: if Հայտարարություններ
    • 4.2: for Հայտարարություններ
    • 4.3. The range() ֆունկցիա
    • 4.4: break և continue Հայտարարություններ, և else Դրույթներ Loops-ի վրա
    • 4.5: pass Հայտարարություններ
    • 4.6: match Հայտարարություններ
    • 4.7. Գործառույթների սահմանում
    • 4.8. Ավելին գործառույթների սահմանման մասին
      • 4.8.1. Կանխադրված փաստարկների արժեքներ
      • 4.8.2. Հիմնաբառի փաստարկներ
      • 4.8.3. Հատուկ պարամետրեր
        • 4.8.3.1. Դիրքային կամ հիմնաբառի փաստարկներ
        • 4.8.3.2. Միայն դիրքային պարամետրեր
        • 4.8.3.3. Հիմնաբառ միայն փաստարկներ
        • 4.8.3.4. Գործառույթների օրինակներ
        • 4.8.3.5. Ամփոփում
      • 4.8.4. Կամայական փաստարկների ցուցակներ
      • 4.8.5. Փաստարկների ցուցակների բացում
      • 4.8.6. Լամբդա արտահայտություններ
      • 4.8.7. Փաստաթղթերի տողեր
      • 4.8.8. Գործառույթների ծանոթագրություններ
    • 4.9. Intermezzo: Կոդավորման ոճ
  • 5. Տվյալների կառուցվածքներ
    • 5.1. Ավելին Ցուցակների մասին
      • 5.1.1. Ցուցակների օգտագործումը որպես կույտեր
      • 5.1.2. Ցուցակների օգտագործումը որպես հերթեր
      • 5.1.3. Ցուցակ ըմբռնումներ
      • 5.1.4. Nested List Comprehensions
    • 5.2. The del հայտարարություն
    • 5.3. Tuples և Sequences
    • 5.4. Կոմպլեկտներ
    • 5.5. Բառարաններ
    • 5.6. Looping տեխնիկա
    • 5.7. Ավելին՝ Պայմանների մասին
    • 5.8. Հաջորդականությունների և այլ տեսակների համեմատություն
  • 6. Մոդուլներ
    • 6.1. Ավելին մոդուլների մասին
      • 6.1.1. Մոդուլների կատարումը որպես սցենար
      • 6.1.2. Մոդուլի որոնման ուղին
      • 6.1.3. «Կազմված» Python ֆայլեր
    • 6.2. Ստանդարտ մոդուլներ
    • 6.3. The dir() ֆունկցիա
    • 6.4. Փաթեթներ
      • 6.4.1. Ներմուծում * փաթեթից
      • 6.4.2. Ներփաթեթի հղումներ
      • 6.4.3. Փաթեթներ բազմաթիվ գրացուցակներում
  • 7. Մուտք և ելք
    • 7.1. Facier ելքային ֆորմատավորում
      • 7.1.1. Ձևաչափված լարային բառացիներ
      • 7.1.2. String format() մեթոդը
      • 7.1.3. Ձեռքով լարային ձևաչափում
      • 7.1.4. Հին տողերի ձևաչափում
    • 7.2. Ֆայլեր կարդալ և գրել
      • 7.2.1. Ֆայլի օբյեկտների մեթոդներ
      • 7.2.2. Պահպանելով կառուցվածքային տվյալները json
  • 8. Սխալներ և բացառություններ
    • 8.1. Շարահյուսական սխալներ
    • 8.2. Բացառություններ
    • 8.3. Կառավարման բացառություններ
    • 8.4. Բացառությունների բարձրացում
    • 8.5. Բացառության շղթայականացում
    • 8.6. Օգտագործողի կողմից սահմանված Բացառություններ
    • 8.7. Մաքրման գործողությունների սահմանում
    • 8.8. Նախապես սահմանված մաքրման գործողություններ
  • 9. Դասեր
    • 9.1. Խոսք անունների և առարկաների մասին
    • 9.2. Python Scopes և Namespaces
      • 9.2.1. Շրջանակների և անունների տարածքների օրինակ
    • 9.3. Առաջին հայացք դասերին
      • 9.3.1. Դասի սահմանման շարահյուսություն
      • 9.3.2. Դասի առարկաներ
      • 9.3.3. Օրինակի օբյեկտներ
      • 9.3.4. Մեթոդի օբյեկտներ
      • 9.3.5. Դասի և օրինակի փոփոխականներ
    • 9.4. Պատահական դիտողություններ
    • 9.5. Ժառանգություն
      • 9.5.1. Բազմակի ժառանգություն
    • 9.6. Մասնավոր փոփոխականներ
    • 9.7. Հնարավորություններ և ավարտներ
    • 9.8. Իտերատորներ
    • 9.9. Գեներատորներ
    • 9.10. Գեներատորի արտահայտություններ
  • 10. Համառոտ շրջայց Ստանդարտ գրադարանում
    • 10.1. Օպերացիոն համակարգի ինտերֆեյս
    • 10.2. Ֆայլի Wildcards
    • 10.3. Հրամանի տողի փաստարկներ
    • 10.4. Սխալի արդյունքի վերահղում և ծրագրի դադարեցում
    • 10.5. Լարի նախշերի համապատասխանեցում
    • 10.6. Մաթեմատիկա
    • 10.7. Ինտերնետ հասանելիության
    • 10.8. Ամսաթվեր և ժամեր
    • 10.9. Տվյալների սեղմում
    • 10.10. Արդյունավետության չափում
    • 10.11. Որակի հսկողություն
    • 10.12. Ներառված են մարտկոցներ
  • 11. Համառոտ շրջայց Ստանդարտ գրադարանում — Մաս II
    • 11.1. Ելքային ֆորմատավորում
    • 11.2. Կաղապարավորում
    • 11.3. Երկուական տվյալների ձայնագրման դասավորությունների հետ աշխատելը
    • 11.4. Բազմաթելային
    • 11.5. անտառահատումներ
    • 11.6. Թույլ հղումներ
    • 11.7. Գործիքներ ցուցակների հետ աշխատելու համար
    • 11.8. Տասնորդական լողացող կետի թվաբանություն
  • 12. Վիրտուալ միջավայրեր և փաթեթներ
    • 12.1: ներածություն
    • 12.2. Վիրտուալ միջավայրերի ստեղծում
    • 12.3. Փաթեթների կառավարում pip-ով
  • 13. Ի՞նչ հիմա:
  • 14. Ինտերակտիվ մուտքագրման խմբագրում և պատմության փոխարինում
    • 14.1. Ներդիրների լրացում և պատմության խմբագրում
    • 14.2. Ինտերակտիվ թարգմանչի այլընտրանքներ
  • 15. Լողացող կետի թվաբանություն. խնդիրներ և սահմանափակումներ
    • 15.1. Ներկայացման սխալ
  • 16. Հավելված
    • 16.1. Ինտերակտիվ ռեժիմ
      • 16.1.1. Սխալների կառավարում
      • 16.1.2. Գործարկվող Python սցենարներ
      • 16.1.3. Ինտերակտիվ գործարկման ֆայլ
      • 16.1.4. Անհատականացման մոդուլներ

Python ստանդարտ գրադարան

Ժամանակ Python լեզվի տեղեկանք նկարագրում է Python լեզվի ճշգրիտ շարահյուսությունը և իմաստաբանությունը, գրադարանի այս տեղեկատու ձեռնարկը նկարագրում է ստանդարտ գրադարանը, որը բաշխվում է Python-ով: Այն նաև նկարագրում է որոշ կամընտիր բաղադրիչներ, որոնք սովորաբար ներառված են Python բաշխումների մեջ:

Python-ի ստանդարտ գրադարանը շատ ընդարձակ է, որն առաջարկում է հարմարությունների լայն շրջանակ, ինչպես նշված է ստորև թվարկված երկար բովանդակության աղյուսակում: Գրադարանը պարունակում է ներկառուցված մոդուլներ (գրված C-ով), որոնք ապահովում են մուտք դեպի համակարգի ֆունկցիոնալությունը, ինչպիսին է I/O ֆայլը, որն այլապես անհասանելի կլիներ Python ծրագրավորողների համար, ինչպես նաև Python-ով գրված մոդուլներ, որոնք ապահովում են ստանդարտացված լուծումներ բազմաթիվ խնդիրների համար, որոնք առաջանում են ամենօրյա ծրագրավորում. Այս մոդուլներից մի քանիսը բացահայտորեն նախագծված են Python ծրագրերի դյուրատարությունը խրախուսելու և բարձրացնելու համար՝ հարթակին հատուկ առանձնահատկությունները վերացելով հարթակ-չեզոք API-ների մեջ:

Windows պլատֆորմի համար Python տեղադրողները սովորաբար ներառում են ամբողջ ստանդարտ գրադարանը և հաճախ ներառում են նաև բազմաթիվ լրացուցիչ բաղադրիչներ: Unix-ի նման օպերացիոն համակարգերի համար Python-ը սովորաբար տրամադրվում է որպես փաթեթների հավաքածու, ուստի կարող է անհրաժեշտ լինել օգտագործել օպերացիոն համակարգի հետ տրամադրվող փաթեթավորման գործիքները՝ որոշ կամ բոլոր կամընտիր բաղադրիչներ ստանալու համար:

Բացի ստանդարտ գրադարանից, կա մի քանի հազար բաղադրիչների աճող հավաքածու (առանձին ծրագրերից և մոդուլներից մինչև փաթեթներ և հավելվածների մշակման ամբողջ շրջանակներ), որոնք հասանելի են Python փաթեթի ինդեքս.

Python լեզվի տեղեկանք

Այս տեղեկատու ձեռնարկը նկարագրում է լեզվի շարահյուսությունը և «հիմնական իմաստաբանությունը»: Այն կարճ է, բայց փորձում է լինել ճշգրիտ և ամբողջական: Ներկառուցված օբյեկտների ոչ էական տեսակների և ներկառուցված գործառույթների և մոդուլների իմաստաբանությունը նկարագրված է. Python ստանդարտ գրադարան. Լեզվի ոչ պաշտոնական ներածության համար տե՛ս Python ձեռնարկը. C կամ C++ ծրագրավորողների համար կան երկու լրացուցիչ ձեռնարկ. Python թարգմանչի ընդլայնում և ներկառուցում նկարագրում է բարձր մակարդակի պատկերը, թե ինչպես գրել Python ընդլայնման մոդուլը, և Python/C API Reference ձեռնարկ մանրամասն նկարագրում է C/C++ ծրագրավորողների համար հասանելի միջերեսները:

Python-ի կարգավորում և օգտագործում

Փաստաթղթերի այս հատվածը նվիրված է տարբեր հարթակներում Python միջավայրի տեղադրման, թարգմանչի կանչի և Python-ի հետ աշխատանքը հեշտացնող ընդհանուր տեղեկատվությանը:

Python մոդուլների տեղադրում

Էլ. փոստի հասցե

[էլեկտրոնային փոստով պաշտպանված]

Որպես բաց կոդով մշակման հանրահայտ նախագիծ՝ Python-ն ունի ներդրողների և օգտատերերի ակտիվ աջակցող համայնք, որը նաև հասանելի է դարձնում իրենց ծրագրակազմը Python-ի այլ մշակողների համար՝ օգտագործելու բաց կոդով լիցենզիայի պայմաններով:

Սա Python-ի օգտատերերին թույլ է տալիս արդյունավետորեն կիսվել և համագործակցել՝ օգուտ քաղելով այն լուծումներից, որոնք արդեն իսկ ստեղծել են ուրիշները ընդհանուր (և երբեմն նույնիսկ հազվագյուտ!) խնդիրների համար, ինչպես նաև ներդնելով իրենց սեփական լուծումները ընդհանուր ֆոնդում:

Այս ուղեցույցը ներառում է գործընթացի տեղադրման մասը: Ձեր սեփական Python նախագծերը ստեղծելու և համօգտագործելու ուղեցույցի համար տես բաշխման ուղեցույց.

Նշում

 

Կորպորատիվ և այլ ինստիտուցիոնալ օգտվողների համար տեղյակ եղեք, որ շատ կազմակերպություններ ունեն իրենց քաղաքականությունը բաց կոդով ծրագրային ապահովման օգտագործման և դրանց ներդրման վերաբերյալ: Խնդրում ենք հաշվի առնել նման քաղաքականությունը Python-ով տրամադրված բաշխման և տեղադրման գործիքներից օգտվելիս:

Հիմնական տերմիններ

  • pip նախընտրելի տեղադրող ծրագիրն է: Սկսած Python 3.4-ից, այն լռելյայն ներառված է Python երկուական տեղադրողների հետ:

  • վիրտուալ միջավայր Python-ի կիսամեկուսացված միջավայր է, որը թույլ է տալիս փաթեթներ տեղադրել որոշակի հավելվածի կողմից օգտագործելու համար, այլ ոչ թե տեղադրվել համակարգում:

  • venv վիրտուալ միջավայրեր ստեղծելու ստանդարտ գործիք է և Python-ի մաս է կազմում Python 3.3-ից: Սկսած Python 3.4-ից, այն լռելյայն է տեղադրել pip բոլոր ստեղծված վիրտուալ միջավայրերում:

  • virtualenv երրորդ կողմի այլընտրանքն է (և նախորդը): venv. Այն թույլ է տալիս վիրտուալ միջավայրեր օգտագործել Python-ի 3.4-ից առաջ տարբերակների վրա, որոնք կամ չեն ապահովում venv ընդհանրապես, կամ չեն կարողանում ինքնաբերաբար տեղադրել pip ստեղծված միջավայրերում:

  • The Python փաթեթի ինդեքս բաց կոդով լիցենզավորված փաթեթների հանրային պահոց է, որը հասանելի է Python-ի այլ օգտվողների կողմից օգտագործելու համար:

  • որ Python փաթեթավորման մարմին ծրագրավորողների և փաստաթղթերի հեղինակների խումբ է, որը պատասխանատու է ստանդարտ փաթեթավորման գործիքների և հարակից մետատվյալների և ֆայլի ձևաչափերի ստանդարտների պահպանման և զարգացման համար: Նրանք պահպանում են մի շարք գործիքներ, փաստաթղթեր և թողարկում հետագծեր երկուսի վրա GitHub և Bitbucket.

  • distutils սկզբնական կառուցման և բաշխման համակարգն է, որն առաջին անգամ ավելացվել է Python ստանդարտ գրադարանին 1998 թվականին: distutils աստիճանաբար հեռացվում է, այն դեռ հիմք է դրել ընթացիկ փաթեթավորման և բաշխման ենթակառուցվածքի համար, և այն ոչ միայն մնում է ստանդարտ գրադարանի մի մասը, այլև նրա անունը պահպանվում է այլ ձևերով (օրինակ՝ Python-ը համակարգելու համար օգտագործվող փոստային ցուցակի անվանումը): փաթեթավորման ստանդարտների մշակում):

Փոփոխվել է 3.5 տարբերակում. Օգտագործումը venv այժմ առաջարկվում է վիրտուալ միջավայրեր ստեղծելու համար:

Հիմնական օգտագործումը

Ստանդարտ փաթեթավորման գործիքները բոլորը նախատեսված են հրամանի տողից օգտագործելու համար:

Հետևյալ հրամանը կտեղադրի մոդուլի վերջին տարբերակը և դրա կախվածությունները Python Package Index-ից.

python -m pip install SomePackage

Նշում

 

POSIX օգտվողների համար (ներառյալ macOS և Linux օգտվողները), այս ուղեցույցի օրինակները ենթադրում են. վիրտուալ միջավայր.

Windows-ի օգտագործողների համար այս ուղեցույցի օրինակները ենթադրում են, որ Python-ը տեղադրելիս ընտրվել է համակարգի PATH միջավայրի փոփոխականը կարգավորելու տարբերակը:

Հնարավոր է նաև ճշգրիտ կամ նվազագույն տարբերակ նշել անմիջապես հրամանի տողում: Համեմատիչ օպերատորներ օգտագործելիս, ինչպիսիք են >< կամ որևէ այլ հատուկ նիշ, որը մեկնաբանվում է shell-ով, փաթեթի անվանումը և տարբերակը պետք է կցվեն կրկնակի չակերտների մեջ.

python -m pip install SomePackage==1.0.4    # specific version
python -m pip install "SomePackage>=1.0.4"  # minimum version

Սովորաբար, եթե համապատասխան մոդուլն արդեն տեղադրված է, այն նորից տեղադրելու փորձը ոչ մի ազդեցություն չի ունենա: Գոյություն ունեցող մոդուլների արդիականացումը պետք է հստակորեն պահանջվի.

python -m pip install --upgrade SomePackage

Լրացուցիչ տեղեկություններ և ռեսուրսներ վերաբերյալ pip և դրա հնարավորությունները կարելի է գտնել Python Packaging Օգտագործողի ուղեցույց.

Վիրտուալ միջավայրերի ստեղծումը կատարվում է միջոցով venv մոդուլ. Փաթեթները ակտիվ վիրտուալ միջավայրում տեղադրելու համար օգտագործվում են վերը նշված հրամանները:

Ինչպես կարող եմ …?

Սրանք արագ պատասխաններ կամ հղումներ են որոշ ընդհանուր առաջադրանքների համար:

… տեղադրել pip Python-ի տարբերակներում Python 3.4-ից առաջ:

Python-ը միայն սկսեց փաթեթավորվել pip Python 3.4-ի հետ: Ավելի վաղ տարբերակների համար՝ pip պետք է «bootstrapped» լինի, ինչպես նկարագրված է Python Packaging Օգտագործողի ուղեցույցում:

Տեղադրե՞լ փաթեթներ միայն ընթացիկ օգտագործողի համար:

Անցնելով --user տարբերակը python -m pip install կտեղադրի փաթեթ միայն ընթացիկ օգտագործողի համար, այլ ոչ թե համակարգի բոլոր օգտագործողների համար:

… տեղադրել գիտական ​​Python փաթեթներ:

Մի շարք գիտական ​​Python փաթեթներ ունեն բարդ երկուական կախվածություն և ներկայումս հեշտ չէ տեղադրել՝ օգտագործելով pip ուղղակիորեն։ Ժամանակի այս պահին օգտվողների համար հաճախ ավելի հեշտ կլինի տեղադրել այս փաթեթները այլ միջոցներ այլ ոչ թե փորձել դրանք տեղադրել pip.

… աշխատել զուգահեռաբար տեղադրված Python-ի բազմաթիվ տարբերակների հետ:

Linux-ի, macOS-ի և այլ POSIX համակարգերում օգտագործեք Python-ի տարբերակված հրամանները՝ համակցված -m միացրեք համապատասխան պատճենը գործարկելու համար pip:

python2   -m pip install SomePackage  # default Python 2
python2.7 -m pip install SomePackage  # specifically Python 2.7
python3   -m pip install SomePackage  # default Python 3
python3.4 -m pip install SomePackage  # specifically Python 3.4

Համապատասխան տարբերակով pip հրամանները կարող են նաև հասանելի լինել:

Windows-ում օգտագործեք py Python-ի գործարկիչը՝ ի հետ համատեղ -m միացրեք:

py -2   -m pip install SomePackage  # default Python 2
py -2.7 -m pip install SomePackage  # specifically Python 2.7
py -3   -m pip install SomePackage  # default Python 3
py -3.4 -m pip install SomePackage  # specifically Python 3.4

Տեղադրման ընդհանուր խնդիրներ

Python համակարգում տեղադրում Linux-ում

Linux համակարգերում Python-ի տեղադրումը սովորաբար կներառվի որպես բաշխման մաս: Python-ի այս տեղադրման մեջ տեղադրումը պահանջում է արմատային մուտք դեպի համակարգ և կարող է խանգարել համակարգի փաթեթների կառավարչի և համակարգի այլ բաղադրիչների աշխատանքին, եթե որևէ բաղադրիչ անսպասելիորեն թարմացվի՝ օգտագործելով pip.

Նման համակարգերում փաթեթներ տեղադրելիս հաճախ ավելի լավ է օգտագործել վիրտուալ միջավայր կամ մեկ օգտատիրոջ տեղադրում pip.

Pip-ը տեղադրված չէ

Հնարավոր է, որ pip լռելյայն չի տեղադրվում: Հնարավոր ուղղումներից մեկը հետևյալն է.

python -m ensurepip --default-pip

Կան նաև լրացուցիչ ռեսուրսներ խողովակի տեղադրում:

Երկուական ընդարձակման տեղադրում

Python-ը սովորաբար մեծապես ապավինում է աղբյուրի վրա հիմնված բաշխմանը, ընդ որում, ակնկալվում է, որ վերջնական օգտագործողները կկազմեն ընդլայնման մոդուլներ աղբյուրից՝ որպես տեղադրման գործընթացի մաս:

Երկուականի աջակցության ներդրմամբ wheel Ձևաչափը և Python Package Index-ի միջոցով առնվազն Windows-ի և macOS-ի համար անիվներ հրապարակելու հնարավորությունը, ակնկալվում է, որ այս խնդիրը ժամանակի ընթացքում կթուլանա, քանի որ օգտվողներն ավելի կանոնավոր կերպով կարող են տեղադրել նախապես կառուցված ընդլայնումներ, այլ ոչ թե պետք է ինքնուրույն կառուցեն դրանք:

Տեղադրման որոշ լուծումներ գիտական ​​ծրագրային ապահովում որոնք դեռ հասանելի չեն որպես նախապես կառուցված wheel ֆայլերը կարող են նաև օգնել ձեռք բերել այլ երկուական ընդարձակումներ՝ առանց դրանք տեղում կառուցելու անհրաժեշտության:

Python մոդուլների բաշխում

Էլ. փոստի հասցե

[էլեկտրոնային փոստով պաշտպանված]

Որպես բաց կոդով մշակման հանրահայտ նախագիծ՝ Python-ն ունի ներդրողների և օգտատերերի ակտիվ աջակցող համայնք, որը նաև հասանելի է դարձնում իրենց ծրագրակազմը Python-ի այլ մշակողների համար՝ օգտագործելու բաց կոդով լիցենզիայի պայմաններով:

Սա Python-ի օգտատերերին թույլ է տալիս արդյունավետորեն կիսվել և համագործակցել՝ օգուտ քաղելով այն լուծումներից, որոնք արդեն իսկ ստեղծել են ուրիշները ընդհանուր (և երբեմն նույնիսկ հազվագյուտ!) խնդիրների համար, ինչպես նաև ներդնելով իրենց սեփական լուծումները ընդհանուր ֆոնդում:

Այս ուղեցույցը ներառում է գործընթացի բաշխման մասը: Python-ի այլ նախագծերի տեղադրման ուղեցույցի համար տես տեղադրման ուղեցույց.

Նշում

 

Կորպորատիվ և այլ ինստիտուցիոնալ օգտվողների համար տեղյակ եղեք, որ շատ կազմակերպություններ ունեն իրենց քաղաքականությունը բաց կոդով ծրագրային ապահովման օգտագործման և դրանց ներդրման վերաբերյալ: Խնդրում ենք հաշվի առնել նման քաղաքականությունը Python-ով տրամադրված բաշխման և տեղադրման գործիքներից օգտվելիս:

Հիմնական տերմիններ

  • որ Python փաթեթի ինդեքս բաց կոդով լիցենզավորված փաթեթների հանրային պահոց է, որը հասանելի է Python-ի այլ օգտվողների կողմից օգտագործելու համար

  • որ Python փաթեթավորման մարմին մշակողների և փաստաթղթերի հեղինակների խումբն է, որը պատասխանատու է ստանդարտ փաթեթավորման գործիքների և հարակից մետատվյալների և ֆայլի ձևաչափերի ստանդարտների պահպանման և զարգացման համար: Նրանք պահպանում են մի շարք գործիքներ, փաստաթղթեր և թողարկում հետագծեր երկուսի վրա GitHub և Bitbucket.

  • distutils սկզբնական կառուցման և բաշխման համակարգն է, որն առաջին անգամ ավելացվել է Python ստանդարտ գրադարանին 1998 թվականին: distutils աստիճանաբար հեռացվում է, այն դեռ հիմք է դրել ընթացիկ փաթեթավորման և բաշխման ենթակառուցվածքի համար, և այն ոչ միայն մնում է ստանդարտ գրադարանի մի մասը, այլև նրա անունը պահպանվում է այլ ձևերով (օրինակ՝ Python-ը համակարգելու համար օգտագործվող փոստային ցուցակի անվանումը): փաթեթավորման ստանդարտների մշակում):

  • տեղադրման սարքեր (մեծ մասամբ) իջնող փոխարինող է distutils Առաջին անգամ հրապարակվել է 2004 թվականին distutils գործիքները այլ փաթեթներից կախվածություն հայտարարելու հնարավորությունն էր: Ներկայումս այն առաջարկվում է որպես ավելի պարբերաբար թարմացվող այլընտրանք distutils որն առաջարկում է հետևողական աջակցություն ավելի վերջին փաթեթավորման ստանդարտներին Python-ի տարբերակների լայն շրջանակում:

  • անիվ (այս համատեքստում) նախագիծ է, որն ավելացնում է bdist_wheel հրամանը distutils/տեղադրման սարքեր. Սա արտադրում է խաչաձև հարթակի երկուական փաթեթավորման ձևաչափ (կոչվում է «անիվներ» կամ «անիվային ֆայլեր» և սահմանված է. PEP 427), որը թույլ է տալիս Python գրադարանները, նույնիսկ նրանք, ներառյալ երկուական ընդլայնումները, տեղադրվել համակարգում, առանց տեղական կառուցման կարիքի:

Բաց կոդով լիցենզավորում և համագործակցություն

Աշխարհի մեծ մասում ծրագրաշարը ավտոմատ կերպով ծածկված է հեղինակային իրավունքով: Սա նշանակում է, որ այլ մշակողները պահանջում են բացահայտ թույլտվություն՝ ծրագրաշարը պատճենելու, օգտագործելու, փոփոխելու և վերաբաշխելու համար:

Բաց կոդով լիցենզավորումը նման թույլտվություն բացահայտորեն տրամադրելու միջոց է համեմատաբար հետևողական ձևով, որը թույլ է տալիս ծրագրավորողներին կիսվել և արդյունավետ համագործակցել՝ ազատորեն հասանելի դարձնելով տարբեր խնդիրների ընդհանուր լուծումները: Սա շատ ծրագրավորողների ազատ է թողնում ավելի շատ ժամանակ հատկացնել՝ կենտրոնանալով այն խնդիրների վրա, որոնք համեմատաբար յուրահատուկ են իրենց կոնկրետ իրավիճակի համար:

Python-ով տրամադրված բաշխման գործիքները նախագծված են այնպես, որ ծրագրավորողներին ողջամտորեն պարզ դարձնեն իրենց ներդրումները ծրագրային ապահովման ընդհանուր ֆոնդում, եթե նրանք որոշեն դա անել:

Նույն բաշխման գործիքները կարող են օգտագործվել նաև կազմակերպության ներսում ծրագրակազմ տարածելու համար՝ անկախ նրանից՝ այդ ծրագրաշարը հրապարակված է որպես բաց կոդով ծրագրակազմ, թե ոչ:

Գործիքների տեղադրում

Ստանդարտ գրադարանը չի ներառում կառուցել գործիքներ, որոնք աջակցում են Python փաթեթավորման ժամանակակից ստանդարտներին, քանի որ հիմնական մշակող թիմը պարզել է, որ կարևոր է ունենալ ստանդարտ գործիքներ, որոնք աշխատում են հետևողականորեն, նույնիսկ Python-ի հին տարբերակների վրա:

Ներկայիս առաջարկվող կառուցման և բաշխման գործիքները կարող են տեղադրվել՝ կանչելով pip մոդուլ հրամանի տողում.

python -m pip install setuptools wheel twine

Նշում

 

POSIX օգտատերերի համար (ներառյալ macOS և Linux օգտվողները) այս հրահանգները ենթադրում են a վիրտուալ միջավայր.

Windows-ի օգտագործողների համար այս հրահանգները ենթադրում են, որ Python-ը տեղադրելիս ընտրվել է համակարգի PATH միջավայրի փոփոխականը կարգավորելու տարբերակը:

Python Packaging-ի օգտագործման ուղեցույցը ներառում է ավելի շատ մանրամասներ ներկայումս առաջարկվող գործիքներ.

Python Packaging-ի օգտագործման ուղեցույցի ընթերցում

Python Packaging Օգտագործողի ուղեցույցը ներառում է տարբեր հիմնական քայլերն ու տարրերը, որոնք ներգրավված են նախագծի ստեղծման և հրապարակման մեջ.

Ինչպես կարող եմ…?

Սրանք արագ պատասխաններ կամ հղումներ են որոշ ընդհանուր առաջադրանքների համար:

… ընտրե՞լ անուն իմ նախագծի համար:

Սա հեշտ թեմա չէ, բայց ահա մի քանի խորհուրդ.

  • ստուգեք Python Package Index-ը, որպեսզի տեսնեք՝ արդյոք անունը արդեն օգտագործվում է

  • ստուգեք հանրահայտ հոսթինգ կայքերը, ինչպիսիք են GitHub-ը, Bitbucket-ը և այլն, որպեսզի տեսնեք, արդյոք արդեն կա այդ անունով նախագիծ:

  • ստուգեք, թե ինչ է ստացվում վեբ որոնման արդյունքում ձեր դիտարկած անվան համար

  • խուսափեք առանձնահատուկ տարածված բառերից, հատկապես մի քանի նշանակություն ունեցող բառերից, քանի որ դրանք կարող են դժվարացնել օգտվողների համար գտնել ձեր ծրագրակազմը այն որոնելիս:

… ստեղծել և բաշխե՞լ երկուական ընդարձակումներ:

Սա իրականում բավականին բարդ թեմա է, որտեղ առկա են տարբեր այլընտրանքներ՝ կախված այն բանից, թե կոնկրետ ինչի եք ձգտում հասնել: Լրացուցիչ տեղեկությունների և առաջարկությունների համար տե՛ս Python Packaging-ի օգտագործման ուղեցույցը:

Python թարգմանչի ընդլայնում և ներկառուցում

Այս փաստաթուղթը նկարագրում է, թե ինչպես գրել մոդուլներ C կամ C++-ով, որպեսզի Python թարգմանիչը նոր մոդուլներով ընդլայնվի: Այդ մոդուլները կարող են ոչ միայն սահմանել նոր գործառույթներ, այլև նոր օբյեկտների տեսակներ և դրանց մեթոդներ: Փաստաթուղթը նաև նկարագրում է, թե ինչպես կարելի է տեղադրել Python թարգմանիչը մեկ այլ հավելվածում՝ որպես ընդլայնման լեզու օգտագործելու համար: Ի վերջո, այն ցույց է տալիս, թե ինչպես կարելի է կազմել և կապել ընդլայնման մոդուլները, որպեսզի դրանք կարողանան դինամիկ կերպով (գործարկման ժամանակ) բեռնվել թարգմանչի մեջ, եթե հիմքում ընկած օպերացիոն համակարգը աջակցում է այս հատկությանը:

Այս փաստաթուղթը ենթադրում է հիմնական գիտելիքներ Python-ի մասին: Լեզվի ոչ պաշտոնական ներածության համար տե՛ս Python ձեռնարկըPython լեզվի տեղեկանք տալիս է լեզվի ավելի պաշտոնական սահմանում. Python ստանդարտ գրադարան փաստաթղթերում առկա օբյեկտների տեսակները, գործառույթները և մոդուլները (ինչպես ներկառուցված, այնպես էլ գրված Python-ով), որոնք լեզվին տալիս են կիրառման լայն շրջանակ:

Ամբողջ Python/C API-ի մանրամասն նկարագրության համար տե՛ս առանձին Python/C API Reference ձեռնարկ.

Ընդլայնումների ստեղծում առանց երրորդ կողմի գործիքների

Ուղեցույցի այս բաժինը ներառում է C և C++ ընդլայնումներ ստեղծելն առանց երրորդ կողմի գործիքների օգնության: Այն նախատեսված է հիմնականում այդ գործիքների ստեղծողների համար, այլ ոչ թե ձեր սեփական C ընդլայնումները ստեղծելու առաջարկվող միջոցը:

CPython-ի գործարկման ժամանակի ներկառուցում ավելի մեծ հավելվածում

Երբեմն, քան ստեղծել ընդլայնում, որն աշխատում է Python թարգմանչի ներսում՝ որպես հիմնական հավելված, ցանկալի է փոխարենը տեղադրել CPython գործարկման ժամանակը ավելի մեծ հավելվածի մեջ: Այս բաժինը ներառում է որոշ մանրամասներ, որոնք ներգրավված են հաջողությամբ իրականացնելու համար:

Python/C API Reference ձեռնարկ

Այս ձեռնարկը ներկայացնում է API-ն, որն օգտագործվում է C և C++ ծրագրավորողների կողմից, ովքեր ցանկանում են գրել ընդլայնման մոդուլներ կամ տեղադրել Python-ը: Դա ուղեկից է Python թարգմանչի ընդլայնում և ներկառուցում, որը նկարագրում է ընդարձակման գրելու ընդհանուր սկզբունքները, բայց մանրամասնորեն չի փաստաթղթավորում API-ի գործառույթները։

Python մոդուլի ինդեքս

_ | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | z
   
 _ 
 __future__Ապագա հայտարարությունների սահմանումներ
 __main__Այն միջավայրը, որտեղ գործարկվում է վերին մակարդակի կոդը: Ընդգրկում է հրամանի տողի միջերեսները, ներմուծման ժամանակի վարքագիծը և «__name__ == '__main__'»:
 _threadՑածր մակարդակի threading API:
   
 a 
 abcԱբստրակտ բազային դասեր ըստ :pep:`3119`.
 aifcՀնացած է ՝ Կարդացեք և գրեք աուդիո ֆայլեր AIFF կամ AIFC ձևաչափով:
 argparseՀրամանի տողի տարբերակ և փաստարկների վերլուծման գրադարան:
 arrayՄիատեսակ տպագրված թվային արժեքների տարածության արդյունավետ զանգվածներ:
 astԱբստրակտ շարահյուսության ծառի դասեր և մանիպուլյացիա:
 asynchatՀնացած է ՝ Աջակցություն ասինխրոն հրամանի/պատասխան արձանագրություններին:
 asyncioAsynchronous I/O.
 asyncoreՀնացած է ՝ Բազային դաս՝ ասինխրոն վարդակների բեռնաթափման ծառայությունների մշակման համար:
 atexitԳրանցեք և կատարեք մաքրման գործառույթները:
 audioopՀնացած է ՝ Շահարկել հում ձայնային տվյալները:
   
 b 
 base64RFC 4648. Base16, Base32, Base64 տվյալների կոդավորում; Base85 և Ascii85
 bdbՎրիպազերծող շրջանակ:
 binasciiԵրկուական և տարբեր ASCII կոդավորված երկուական ներկայացումների միջև փոխակերպման գործիքներ:
 binhexԿոդավորեք և վերծանեք ֆայլերը binhex4 ձևաչափով:
 bisectԶանգվածի բաժանման ալգորիթմներ երկուական որոնման համար:
 builtinsՄոդուլը, որն ապահովում է ներկառուցված անվանատարածք:
 bz2Ինտերֆեյսներ bzip2 սեղմման և ապակոմպրեսիայի համար:
   
 c 
 calendarՕրացույցների հետ աշխատելու գործառույթներ, ներառյալ Unix cal ծրագրի որոշ էմուլյացիա:
 cgiՀնացած է ՝ Օգնողներ Python-ի սկրիպտները Common Gateway ինտերֆեյսի միջոցով գործարկելու համար:
 cgitbՀնացած է ՝ CGI սկրիպտների համար կարգավորելի հետագծային կառավարիչ:
 chunkՀնացած է ՝ IFF կտորները կարդալու մոդուլ:
 cmathՄաթեմատիկական ֆունկցիաներ կոմպլեքս թվերի համար:
 cmdԿառուցեք գծի վրա հիմնված հրամանների թարգմանիչներ:
 codeԿարդալու-գնահատման-տպման օղակներ իրականացնելու հարմարություններ:
 codecsԿոդավորեք և վերծանեք տվյալները և հոսքերը:
 codeopԿազմել (հնարավոր է թերի) Python կոդը:
-collectionsԿոնտեյների տվյալների տեսակները
 colorsysՓոխակերպման գործառույթներ RGB-ի և այլ գունային համակարգերի միջև:
 compileallԳործիքներ՝ բոլոր Python սկզբնաղբյուր ֆայլերը գրացուցակի ծառում բայթ-կազմելու համար:
-concurrent 
 configparserԿազմաձևման ֆայլերի վերլուծիչ:
 contextlibԿոմունալ ծառայություններ with-statement համատեքստերի համար:
 contextvarsՀամատեքստի փոփոխականներ
 copyՄակերեսային և խորը պատճենահանման գործողություններ:
 copyregԳրանցեք թթու վարունգի աջակցության գործառույթները:
 cProfile 
 crypt (Յունիքս)Հնացած է ՝ crypt() ֆունկցիան օգտագործվում է Unix-ի գաղտնաբառերը ստուգելու համար:
 csvԳրել և կարդալ աղյուսակային տվյալները սահմանազատված ֆայլերից և դրանցից:
 ctypesՕտարերկրյա գործառույթների գրադարան Python-ի համար:
-curses (Յունիքս)Անեծքների գրադարանի ինտերֆեյս, որն ապահովում է շարժական տերմինալների սպասարկում:
   
 d 
 dataclassesՍտեղծեք հատուկ մեթոդներ օգտագործողի կողմից սահմանված դասերի վրա:
 datetimeՀիմնական ամսաթվի և ժամի տեսակները.
-dbmԻնտերֆեյս տարբեր Unix «տվյալների բազայի» ձևաչափերի համար:
 decimalԸնդհանուր տասնորդական թվաբանական մասնագրերի իրականացում:
 difflibՕգնականներ՝ օբյեկտների միջև տարբերությունները հաշվարկելու համար:
 disԱպամոնտաժող Python բայթկոդի համար:
-distutilsԱջակցություն Python մոդուլների կառուցմանը և տեղադրմանը գոյություն ունեցող Python տեղադրման մեջ:
 doctestԿոդերի փորձարկումներ docstrings-ում:
   
 e 
-emailՓաթեթ, որն աջակցում է էլ.
-encodings 
 ensurepip«pip» տեղադրողի բեռնումը գոյություն ունեցող Python տեղադրման կամ վիրտուալ միջավայրում:
 enumՀամարման դասի իրականացում.
 errnoՍտանդարտ errno համակարգի նշաններ:
   
 f 
 faulthandlerԹափել Python-ի հետքը:
 fcntl (Յունիքս)Զանգում է fcntl() և ioctl() համակարգը:
 filecmpԱրդյունավետ համեմատեք ֆայլերը:
 fileinputԱնցեք ստանդարտ մուտքագրման կամ ֆայլերի ցանկի վրա:
 fnmatchUnix կեղևի ոճի ֆայլի անվան օրինակի համընկնում:
 fractionsՌացիոնալ թվեր.
 ftplibFTP արձանագրության հաճախորդ (պահանջում է վարդակներ):
 functoolsԱվելի բարձր կարգի գործառույթներ և գործողություններ կանչվող օբյեկտների վրա:
   
 g 
 gcԻնտերֆեյս ցիկլը հայտնաբերող աղբի հավաքիչին:
 getoptԴյուրակիր վերլուծիչ հրամանի տողի ընտրանքների համար; աջակցել ինչպես կարճ, այնպես էլ երկար տարբերակների անուններին:
 getpassԳաղտնաբառերի դյուրակիր ընթերցում և օգտագործողի հայտնաբերում:
 gettextԲազմալեզու միջազգայնացման ծառայություններ.
 globUnix shell ոճի ուղու օրինաչափության ընդլայնում:
 graphlibԳրաֆիկական կառուցվածքներով աշխատելու ֆունկցիոնալություն
 grp (Յունիքս)Խմբային տվյալների բազա (getgrnam() և ընկերներ):
 gzipՄիջերեսներ gzip-ի սեղմման և ապակոմպրեսիայի համար՝ օգտագործելով ֆայլի օբյեկտներ:
   
 h 
 hashlibԱպահովեք հեշի և հաղորդագրությունների մարսողության ալգորիթմները:
 heapqԿույտային հերթի ալգորիթմ (նույնպես առաջնահերթ հերթ):
 hmacKeyed-Hashing հաղորդագրությունների նույնականացման (HMAC) իրականացման համար
-htmlՕգնողներ HTML-ի մանիպուլյացիայի համար:
-httpHTTP կարգավիճակի կոդեր և հաղորդագրություններ
   
 i 
 imaplibIMAP4 արձանագրության հաճախորդ (պահանջվում է վարդակներ):
 imghdrՀնացած է ՝ Որոշեք ֆայլի կամ բայթ հոսքի մեջ պարունակվող պատկերի տեսակը:
 impՀնացած է ՝ Մուտք գործեք ներմուծման հայտարարագրի իրականացումը:
-importlibՆերմուծման մեքենաների ներդրում.
 inspectՔաղեք տեղեկատվություն և աղբյուրի կոդը կենդանի օբյեկտներից:
 ioՀիմնական գործիքներ հոսքերի հետ աշխատելու համար:
 ipaddressIPv4/IPv6 մանիպուլյացիայի գրադարան:
 itertoolsԳործառույթներ, որոնք ստեղծում են կրկնողիչներ արդյունավետ օղակի համար:
   
 j 
-jsonԿոդավորեք և վերծանեք JSON ձևաչափը:
   
 k 
 keywordՍտուգեք՝ արդյոք տողը հիմնաբառ է Python-ում:
   
 l 
 lib2to32to3 գրադարան
 linecacheՏրամադրում է պատահական մուտք դեպի առանձին տողեր տեքստային ֆայլերից:
 localeՄիջազգայնացման ծառայություններ.
-loggingՄիջոցառումների գրանցման ճկուն համակարգ հավելվածների համար:
 lzmaPython փաթաթան liblzma սեղմման գրադարանի համար:
   
 m 
 mailboxՇահարկել փոստարկղերը տարբեր ձևաչափերով
 mailcapՀնացած է ՝ Mailcap ֆայլերի մշակում:
 marshalՓոխակերպեք Python օբյեկտները բայթերի հոսքերի և հակառակը (տարբեր սահմանափակումներով):
 mathՄաթեմատիկական ֆունկցիաներ (sin() և այլն):
 mimetypesՖայլի անվան ընդարձակման քարտեզագրում MIME տեսակներին:
 mmapԻնտերֆեյս հիշողության քարտեզագրված ֆայլերի համար Unix-ի և Windows-ի համար:
 modulefinderԳտեք մոդուլներ, որոնք օգտագործվում են սցենարով:
 msilib (Windows)Հնացած է ՝ Microsoft Installer ֆայլերի և CAB ֆայլերի ստեղծում:
 msvcrt (Windows)Տարբեր օգտակար առօրյաներ MS VC++ գործարկման ժամանակից:
-multiprocessingԳործընթացների վրա հիմնված զուգահեռություն.
   
 n 
 netrc.netrc ֆայլերի բեռնում:
 nis (Յունիքս)Հնացած է ՝ Ինտերֆեյս Sun's NIS (Դեղին էջեր) գրադարանին:
 nntplibՀնացած է ՝ NNTP արձանագրության հաճախորդ (պահանջվում է վարդակներ):
 numbersԹվային վերացական բազային դասեր (Բարդ, Իրական, Ինտեգրալ և այլն):
   
 o 
 operatorՍտանդարտ օպերատորներին համապատասխան գործառույթներ:
 optparseՀնացած է ՝ Հրամանի տողի ընտրանքների վերլուծական գրադարան:
-osՏարբեր օպերացիոն համակարգերի միջերեսներ:
 ossaudiodev (Linux, FreeBSD)Հնացած է ՝ Մուտք OSS-ի հետ համատեղելի աուդիո սարքերի:
   
 p 
 pathlibՕբյեկտ-կողմնորոշված ​​ֆայլային համակարգի ուղիներ
 pdbPython վրիպազերծիչը ինտերակտիվ թարգմանիչների համար:
 pickleՓոխակերպեք Python օբյեկտները բայթերի հոսքերի և հակառակը:
 pickletoolsՊարունակում է լայնածավալ մեկնաբանություններ թթու վարունգների արձանագրությունների և թթու վարունգների արտադրության օպերացիոն կոդերի, ինչպես նաև որոշ օգտակար գործառույթների վերաբերյալ:
 pipes (Յունիքս)Հնացած է ՝ Python ինտերֆեյս Unix shell խողովակաշարերի համար:
 pkgutilՆերմուծման համակարգի կոմունալ ծառայություններ.
 platformԱռբերում է որքան հնարավոր է շատ հարթակի նույնականացման տվյալներ:
 plistlibՍտեղծեք և վերլուծեք Apple plist ֆայլերը:
 poplibPOP3 արձանագրության հաճախորդ (պահանջվում է վարդակներ):
 posix (Յունիքս)Ամենատարածված POSIX համակարգի զանգերը (սովորաբար օգտագործվում են մոդուլի OS-ի միջոցով):
 pprintՏվյալների գեղեցիկ տպիչ:
 profilePython աղբյուրի պրոֆիլավորող.
 pstatsՎիճակագրության օբյեկտ՝ պրոֆիլավորողի հետ օգտագործելու համար:
 pty (Յունիքս)Կեղծ-տերմինալային մշակում Unix-ի համար:
 pwd (Յունիքս)Գաղտնաբառերի տվյալների բազա (getpwnam() և ընկերներ):
 py_compileՍտեղծեք բայթ-կոդային ֆայլեր Python-ի սկզբնաղբյուր ֆայլերից:
 pyclbrԱջակցում է տեղեկատվության արդյունահանմանը Python մոդուլի բրաուզերի համար:
 pydocՓաստաթղթերի գեներատոր և առցանց օգնության համակարգ:
   
 q 
 queueՀամաժամեցված հերթերի դաս:
 quopriԿոդավորեք և վերծանեք ֆայլերը՝ օգտագործելով MIME մեջբերումով տպագրվող կոդավորումը:
   
 r 
 randomՍտեղծեք կեղծ պատահական թվեր տարբեր ընդհանուր բաշխումներով:
 reԿանոնավոր արտահայտչական գործողություններ:
 readline (Յունիքս)GNU Readline աջակցություն Python-ին:
 reprlibԱյլընտրանքային repr() իրականացում չափի սահմանափակումներով:
 resource (Յունիքս)Ինտերֆեյս՝ ընթացիկ գործընթացի վերաբերյալ ռեսուրսների օգտագործման վերաբերյալ տեղեկատվություն տրամադրելու համար:
 rlcompleterPython նույնացուցիչի լրացում, որը հարմար է GNU readline գրադարանի համար:
 runpyՏեղադրեք և գործարկեք Python մոդուլները՝ առանց դրանք նախապես ներմուծելու:
   
 s 
 schedԸնդհանուր նշանակության միջոցառումների ժամանակացույց:
 secretsԳաղտնիքները կառավարելու համար անվտանգ պատահական թվեր ստեղծեք:
 selectՍպասեք I/O ավարտին մի քանի հոսքերի վրա:
 selectorsԲարձր մակարդակի I/O մուլտիպլեքսավորում:
 shelvePython օբյեկտի համառություն.
 shlexՊարզ բառագիտական ​​վերլուծություն Unix-ի կեղևանման լեզուների համար:
 shutilԲարձր մակարդակի ֆայլերի գործողություններ, ներառյալ պատճենումը:
 signalՍահմանել կարգավորիչներ ասինխրոն իրադարձությունների համար:
 siteԿայքի հատուկ կազմաձևման համար պատասխանատու մոդուլ:
 smtpdՀնացած է ՝ SMTP սերվերի իրականացում Python-ում:
 smtplibSMTP արձանագրության հաճախորդ (պահանջում է վարդակներ):
 sndhdrՀնացած է ՝ Որոշեք ձայնային ֆայլի տեսակը:
 socketՑածր մակարդակի ցանցային ինտերֆեյս:
 socketserverՇրջանակ ցանցային սերվերների համար:
 spwd (Յունիքս)Հնացած է ՝ Ստվերային գաղտնաբառերի տվյալների բազա (getspnam() և ընկերներ):
 sqlite3DB-API 2.0 իրականացում՝ օգտագործելով SQLite 3.x:
 sslTLS/SSL փաթաթան վարդակից օբյեկտների համար
 statՕգտակար ծրագրեր os.stat(), os.lstat() և os.fstat() արդյունքները մեկնաբանելու համար:
 statisticsՄաթեմատիկական վիճակագրության գործառույթներ
 stringԸնդհանուր լարային գործողություններ.
 stringprepԼարի պատրաստում, ըստ RFC 3453-ի
 structԲայթերը մեկնաբանել որպես փաթեթավորված երկուական տվյալներ:
 subprocessԵնթագործընթացների կառավարում.
 sunauՀնացած է ՝ Տրամադրեք ինտերֆեյս Sun AU ձայնային ձևաչափին:
 symtableԻնտերֆեյս կոմպիլյատորի ներքին նշանների աղյուսակների համար:
 sysՄուտք գործեք համակարգի հատուկ պարամետրեր և գործառույթներ:
 sysconfigPython-ի կազմաձևման տեղեկատվությունը
 syslog (Յունիքս)Ինտերֆեյս Unix syslog գրադարանի առօրյայի համար:
   
 t 
 tabnannyԳործիք հայտնաբերելու սպիտակ տարածության հետ կապված խնդիրները Python աղբյուրի ֆայլերում գրացուցակի ծառի մեջ:
 tarfileԿարդացեք և գրեք tar-format արխիվային ֆայլեր:
 telnetlibՀնացած է ՝ Telnet հաճախորդի դաս.
 tempfileՍտեղծեք ժամանակավոր ֆայլեր և գրացուցակներ:
 termios (Յունիքս)POSIX ոճի tty կառավարում:
-testՌեգրեսիայի թեստերի փաթեթ, որը պարունակում է Python-ի փորձարկման փաթեթ:
 textwrapՏեքստի փաթեթավորում և լրացում
 threadingԹելերի վրա հիմնված զուգահեռականություն.
 timeԺամանակի հասանելիություն և փոխարկումներ:
 timeitՉափել փոքր կոդի հատվածների կատարման ժամանակը:
-tkinterԻնտերֆեյս դեպի Tcl/Tk՝ օգտատիրոջ գրաֆիկական միջերեսների համար
 tokenՄշտականներ, որոնք ներկայացնում են վերլուծական ծառի տերմինալ հանգույցները:
 tokenizeԼեքսիկական սկաներ Python-ի սկզբնական կոդի համար:
 traceՀետևեք կամ հետևեք Python հայտարարության կատարմանը:
 tracebackՏպեք կամ առբերեք կույտի հետագծում:
 tracemallocՀետևեք հիշողության հատկացումներին:
 tty (Յունիքս)Կոմունալ գործառույթներ, որոնք կատարում են ընդհանուր տերմինալի կառավարման գործողություններ:
 turtleԿրթական շրջանակ պարզ գրաֆիկական հավելվածների համար
 turtledemoԴիտող, օրինակ, կրիայի սցենարներ
 typesՆերկառուցված տեսակների անունները.
 typingՏիպի ակնարկների աջակցություն (տես՝ :pep:`484`):
   
 u 
 unicodedataՄուտք գործեք Unicode տվյալների բազա:
-unittestՄիավորի փորձարկման շրջանակ Python-ի համար:
-urllib 
 uuՀնացած է ՝ Կոդավորեք և վերծանեք ֆայլերը uuecode ձևաչափով:
 uuidUUID օբյեկտներ (համընդհանուր եզակի նույնացուցիչներ)՝ ըստ RFC 4122-ի
   
 v 
 venvՎիրտուալ միջավայրերի ստեղծում:
   
 w 
 warningsԹողարկեք նախազգուշական հաղորդագրություններ և վերահսկեք դրանց տրամադրվածությունը:
 waveՏրամադրեք ինտերֆեյս WAV ձայնային ձևաչափի համար:
 weakrefԱջակցություն թույլ հղումների և թույլ բառարանների համար:
 webbrowserՎեբ բրաուզերների համար հեշտ օգտագործման վերահսկիչ:
 winreg (Windows)Windows ռեեստրի մանիպուլյացիայի ռեժիմներ և օբյեկտներ:
 winsound (Windows)Windows-ի համար ձայնային նվագարկիչի հասանելիություն:
-wsgirefWSGI կոմունալ ծառայություններ և հղումների իրականացում:
   
 x 
 xdrlibՀնացած է ՝ Կոդավորիչներ և ապակոդավորիչներ արտաքին տվյալների ներկայացման համար (XDR):
-xmlXML մշակման մոդուլներ պարունակող փաթեթ
-xmlrpc 
   
 z 
 zipappԿառավարեք գործարկվող Python zip արխիվները
 zipfileԿարդացեք և գրեք ZIP ֆորմատի արխիվային ֆայլեր:
 zipimportԱջակցություն Python մոդուլների ներմուծմանը ZIP արխիվներից:
 zlibՑածր մակարդակի ինտերֆեյս սեղմման և ապակոմպրեսիոն ռեժիմների համար, որոնք համատեղելի են gzip-ի հետ:
 zoneinfoIANA ժամային գոտու աջակցություն

ինդեքս

Ինդեքսային էջերը տառերով.

Նշաններ | _ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

Ամբողջական ինդեքսը մեկ էջում (կարող է լինել հսկայական)

մասնագիտական ​​տերմինաբանական բառարան

>>>

Ինտերակտիվ կեղևի լռելյայն Python հուշումը: Հաճախ նկատվում է կոդերի օրինակներ, որոնք կարող են ինտերակտիվ կերպով իրականացվել թարգմանիչում:

...

Կարող է վերաբերել՝

  • Ինտերակտիվ կեղևի լռելյայն Python-ի հուշումը, երբ մուտքագրվում է ծածկագիր մատնանշված կոդի բլոկի համար, երբ գտնվում է զույգ համապատասխանող ձախ և աջ սահմանազատիչներ (փակագծեր, քառակուսի փակագծեր, գանգուր փակագծեր կամ եռակի չակերտներ) կամ դեկորատոր նշելուց հետո:

  • The Ellipsis ներկառուցված մշտական.

2to3

Գործիք, որը փորձում է Python 2.x կոդը փոխարկել Python 3.x կոդի՝ կարգավորելով անհամատեղելիությունների մեծ մասը, որոնք կարելի է հայտնաբերել՝ վերլուծելով աղբյուրը և անցնելով վերլուծական ծառը:

2to3-ը հասանելի է ստանդարտ գրադարանում որպես lib2to3; որպես ինքնուրույն մուտքի կետ տրամադրվում է Tools/scripts/2to3: Տեսնել 2to3 – Python 2-ից 3 կոդերի ավտոմատ թարգմանություն.

վերացական բազային դաս

Վերացական բազային դասերը լրացնում են բադ-մեքենագրում տրամադրելով միջերեսներ սահմանելու միջոց, երբ այլ տեխնիկան նման է hasattr() կլիներ անշնորհք կամ նրբանկատորեն սխալ (օրինակ՝ հետ կախարդական մեթոդներ): ABC-ները ներկայացնում են վիրտուալ ենթադասեր, որոնք դասեր են, որոնք չեն ժառանգում դասից, բայց դեռ ճանաչվում են isinstance() և issubclass(); տե՛ս abc մոդուլի փաստաթղթեր: Python-ը գալիս է բազմաթիվ ներկառուցված ABC-ներով տվյալների կառուցվածքների համար (in collections.abc մոդուլ), թվեր (ի numbers մոդուլ), հոսքեր (ի io մոդուլ), ներմուծման որոնիչներ և բեռնիչներ (ի importlib.abc մոդուլ): Դուք կարող եք ստեղծել ձեր սեփական ABC-ները abc մոդուլը:

անոտացիա

Փոփոխականի, դասի հատկանիշի կամ ֆունկցիայի պարամետրի կամ վերադարձի արժեքի հետ կապված պիտակ, որն օգտագործվում է պայմանականորեն որպես մուտքագրել հուշում.

Տեղական փոփոխականների ծանոթագրությունները հնարավոր չէ մուտք գործել գործարկման ժամանակ, սակայն գլոբալ փոփոխականների, դասի ատրիբուտների և գործառույթների ծանոթագրությունները պահվում են __annotations__ համապատասխանաբար մոդուլների, դասերի և գործառույթների հատուկ հատկանիշ:

Տեսնել փոփոխական անոտացիաֆունկցիայի անոտացիաPEP 484 և PEP 526, որոնք նկարագրում են այս գործառույթը: Տես նաև Անոտացիաների լավագույն փորձը ծանոթագրությունների հետ աշխատելու լավագույն փորձի համար:

փաստարկ

Արժեքը փոխանցվել է a ֆունկցիա (Կամ մեթոդ) ֆունկցիան կանչելիս: Երկու տեսակի փաստարկ կա.

  • հիմնաբառի փաստարկարգումենտ, որին նախորդում է նույնացուցիչը (օրինակ name=) ֆունկցիայի կանչում կամ փոխանցվում է որպես արժեք բառարանում նախորդող **, Օրինակ, 3 և 5 երկուսն էլ հիմնաբառի արգումենտներ են հետևյալ կոչերում complex():

    complex(real=3, imag=5)
    complex(**{'real': 3, 'imag': 5})
    
  • դիրքային փաստարկարգումենտ, որը հիմնաբառի փաստարկ չէ: Դիրքային արգումենտները կարող են հայտնվել փաստարկների ցանկի սկզբում և/կամ փոխանցվել որպես an-ի տարրեր կրկնող նախորդում է *, Օրինակ, 3 և 5 երկուսն էլ դիրքային փաստարկներ են հետևյալ կոչերում.

    complex(3, 5)
    complex(*(3, 5))
    

Փաստարկները վերագրվում են ֆունկցիայի մարմնի անվանված տեղական փոփոխականներին: Տեսեք Զանգեր բաժինը այս հանձնարարությունը կարգավորող կանոնների համար: Սինտակտիկորեն ցանկացած արտահայտություն կարող է օգտագործվել փաստարկ ներկայացնելու համար. գնահատված արժեքը վերագրվում է տեղական փոփոխականին:

Տես նաեւ պարամետր բառարանի մուտքը, ՀՏՀ հարցը արգումենտների և պարամետրերի տարբերությունը, եւ PEP 362.

ասինխրոն համատեքստի կառավարիչ

Օբյեկտ, որը վերահսկում է շրջակա միջավայրը, որը երևում է ա async with հայտարարությունը սահմանելով __aenter__() և __aexit__() մեթոդները։ Ներկայացրեց PEP 492.

ասինխրոն գեներատոր

Գործառույթ, որը վերադարձնում է an ասինխրոն գեներատոր կրկնող. Կարծես թե կորուտինային ֆունկցիա է, որը սահմանված է async def բացառությամբ, որ այն պարունակում է yield արտահայտություններ՝ մի շարք արժեքներ ստեղծելու համար, որոնք օգտագործելի են ան async for հանգույց:

Սովորաբար վերաբերում է ասինխրոն գեներատորի ֆունկցիային, բայց կարող է վերաբերել an ասինխրոն գեներատոր կրկնող որոշ համատեքստերում. Այն դեպքերում, երբ նախատեսված իմաստը պարզ չէ, ամբողջական տերմինների օգտագործումը խուսափում է երկիմաստությունից:

Ասինխրոն գեներատորի ֆունկցիան կարող է պարունակել await արտահայտությունները, ինչպես նաև async for, եւ async with հայտարարություններ:

ասինխրոն գեներատոր կրկնող

Ա-ի կողմից ստեղծված օբյեկտ ասինխրոն գեներատոր գործառույթը:

Սա ասինխրոն կրկնող որը, երբ կոչվում է օգտագործելով __anext__() մեթոդը վերադարձնում է սպասելի օբյեկտ, որը կկատարի ասինխրոն գեներատորի ֆունկցիան մինչև հաջորդ yield արտահայտությունը:

յուրաքանչյուր yield ժամանակավորապես դադարեցնում է մշակումը, հիշելով գտնվելու վայրի կատարման վիճակը (ներառյալ տեղական փոփոխականները և առկախ փորձի հայտարարությունները): Երբ որ ասինխրոն գեներատոր կրկնող արդյունավետորեն վերսկսվում է վերադարձված մեկ այլ սպասվածի հետ __anext__(), այն շարունակում է այնտեղ, որտեղ կանգ է առել: Տեսնել PEP 492 և PEP 525.

ասինխրոն կրկնվող

Օբյեկտ, որը կարող է օգտագործվել մի async for հայտարարություն. Պետք է վերադարձնել ան ասինխրոն կրկնող իր կողմից __aiter__() մեթոդ. Ներկայացրեց PEP 492.

ասինխրոն կրկնող

Օբյեկտ, որն իրականացնում է __aiter__() և __anext__() մեթոդները: __anext__ պետք է վերադարձնել ան սպասելի առարկա: async for լուծում է ասինխրոն կրկնվողի կողմից վերադարձված սպասելիները __anext__() մեթոդ, քանի դեռ այն չի բարձրացնում ա StopAsyncIteration բացառություն. Ներկայացրեց PEP 492.

ատրիբուտ

Արժեքը, որը կապված է օբյեկտի հետ, որը նշված է անունով՝ օգտագործելով կետավոր արտահայտություններ: Օրինակ, եթե օբյեկտ o հատկանիշ ունի a այն կնշվի որպես օա.

սպասելի

Օբյեկտ, որը կարող է օգտագործվել մի await արտահայտություն. Կարող է լինել ա կոռուտին կամ առարկայի հետ __await__() մեթոդ. Տես նաեւ PEP 492.

BDFL

Բարեգործական դիկտատոր Կյանքի համար, նույնանուն Գուիդո վան Ռոսսում, Python-ի ստեղծողը։

երկուական ֆայլ

ֆայլի օբյեկտ կարողանալ կարդալ և գրել բայթ նման առարկաներ. Երկուական ֆայլերի օրինակներ են երկուական ռեժիմով բացված ֆայլերը ('rb''wb' or 'rb+'), sys.stdin.buffersys.stdout.buffer, և դեպքեր io.BytesIO և gzip.GzipFile.

Տես նաեւ, տեքստային ֆայլ ֆայլի օբյեկտի համար, որը կարող է կարդալ և գրել str առարկաներ:

փոխառված տեղեկանք

Python-ի C API-ում փոխառված հղումը հղում է օբյեկտին: Այն չի փոփոխում օբյեկտի հղման թիվը: Այն դառնում է կախված ցուցիչ, եթե օբյեկտը ոչնչացվում է: Օրինակ, աղբահանությունը կարող է հեռացնել վերջինը ուժեղ հղում օբյեկտին և այսպես ոչնչացնել այն:

Զանգահարելը Py_INCREF() մասին փոխառված տեղեկանք խորհուրդ է տրվում այն ​​փոխարկել a ուժեղ հղում տեղում, բացառությամբ այն դեպքերի, երբ օբյեկտը չի կարող ոչնչացվել մինչև փոխառված տեղեկանքի վերջին օգտագործումը: Այն Py_NewRef() ֆունկցիան կարող է օգտագործվել նորը ստեղծելու համար ուժեղ հղում.

բայթերի նման օբյեկտ

Օբյեկտ, որն աջակցում է Բուֆերային արձանագրություն և կարող է արտահանել C-հարազատ բուֆեր. Սա ներառում է բոլորը bytesbytearray, եւ array.array առարկաներ, ինչպես նաև շատ ընդհանուր memoryview առարկաներ. Բայթի նման օբյեկտները կարող են օգտագործվել տարբեր գործողություններ իրականացնելու համար, որոնք աշխատում են երկուական տվյալների հետ; դրանք ներառում են սեղմում, պահպանում երկուական ֆայլում և ուղարկում վարդակից:

Որոշ գործողությունների համար անհրաժեշտ է, որ երկուական տվյալները փոփոխական լինեն: Փաստաթղթերը հաճախ դրանք անվանում են «կարդալ-գրել բայթերի նման օբյեկտներ»: Օրինակ՝ փոփոխվող բուֆերային օբյեկտները ներառում են bytearray եւ memoryview մի bytearray. Այլ գործողությունները պահանջում են երկուական տվյալների պահպանում անփոփոխ օբյեկտներում («միայն կարդալու համար նախատեսված բայթերի նման օբյեկտներ»); դրանց օրինակները ներառում են bytes եւ memoryview մի bytes առարկա:

բայթկոդ

Python աղբյուրի կոդը կազմվում է բայթկոդի՝ Python ծրագրի ներքին ներկայացումը CPython թարգմանիչում։ Բայթկոդը նույնպես պահվում է քեշում .pyc ֆայլեր, որպեսզի նույն ֆայլը երկրորդ անգամ ավելի արագ գործարկվի (կարելի է խուսափել աղբյուրից բայթկոդ վերակոմպիլյացիայից): Այս «միջանկյալ լեզուն» ասվում է, որ աշխատում է ա վիրտուալ մեքենա որը կատարում է յուրաքանչյուր բայթկոդի համապատասխան մեքենայի կոդը: Նկատի ունեցեք, որ բայթկոդերը չեն աշխատի Python-ի տարբեր վիրտուալ մեքենաների միջև, ոչ էլ կայուն կլինեն Python-ի թողարկումների միջև:

Բայթկոդերի հրահանգների ցանկը կարելի է գտնել փաստաթղթերում dis մոդուլը.

ետ Զանգիր

Ենթածրագրային ֆունկցիա, որը փոխանցվում է որպես փաստարկ, որը պետք է կատարվի ապագայում ինչ-որ պահի:

դաս

Օգտատիրոջ կողմից սահմանված օբյեկտներ ստեղծելու ձևանմուշ: Դասերի սահմանումները սովորաբար պարունակում են մեթոդի սահմանումներ, որոնք գործում են դասի օրինակների վրա:

դասի փոփոխական

Փոփոխական, որը սահմանված է դասում և նախատեսվում է փոփոխել միայն դասի մակարդակում (այսինքն՝ ոչ դասի օրինակում):

հարկադրանքը

Մեկ տիպի օրինակի անուղղակի փոխակերպումը գործողության ընթացքում, որը ներառում է նույն տեսակի երկու արգումենտ: Օրինակ, int(3.15) լողացող կետի թիվը վերածում է ամբողջ թվի 3, բայց 3+4.5, յուրաքանչյուր արգումենտ տարբեր տեսակի է (մեկ int, մեկ float), և երկուսն էլ պետք է փոխարկվեն նույն տեսակի, նախքան դրանք հնարավոր լինի ավելացնել, այլապես այն կբարձրացնի a TypeError. Առանց հարկադրանքի, նույնիսկ համատեղելի տեսակների բոլոր արգումենտները պետք է նորմալացվեն նույն արժեքով ծրագրավորողի կողմից, օրինակ. float(3)+4.5 քան պարզապես 3+4.5.

բարդ թիվ

Ծանոթ իրական թվերի համակարգի ընդլայնում, որտեղ բոլոր թվերն արտահայտվում են որպես իրական մասի և երևակայական մասի գումար: Երևակայական թվերը երևակայական միավորի իրական բազմապատիկներն են (քառակուսի արմատը -1), հաճախ գրված i մաթեմատիկայի մեջ կամ j ճարտարագիտության մեջ։ Python-ն ունի ներկառուցված աջակցություն բարդ թվերի համար, որոնք գրված են այս վերջին նշումով. երևակայական մասը գրվում է ա j վերջածանց, օրինակ, 3+1j. -ի բարդ համարժեքներին հասանելիություն ստանալու համար math մոդուլ, օգտագործում cmath. Կոմպլեքս թվերի օգտագործումը բավականին զարգացած մաթեմատիկական հատկանիշ է: Եթե ​​դուք տեղյակ չեք դրանց անհրաժեշտության մասին, ապա գրեթե վստահ է, որ կարող եք ապահով անտեսել դրանք:

համատեքստի կառավարիչ

Օբյեկտ, որը վերահսկում է շրջակա միջավայրը, որը երևում է a with հայտարարությունը սահմանելով __enter__() և __exit__() մեթոդները։ Տեսնել PEP 343.

համատեքստի փոփոխական

Փոփոխական, որը կարող է ունենալ տարբեր արժեքներ՝ կախված իր համատեքստից: Սա նման է Thread-Local Storage-ին, որտեղ յուրաքանչյուր կատարման շարանը կարող է տարբեր արժեք ունենալ փոփոխականի համար: Այնուամենայնիվ, համատեքստի փոփոխականների դեպքում կարող են լինել մի քանի համատեքստեր մեկ կատարման թեմայում, և համատեքստի փոփոխականների հիմնական օգտագործումը միաժամանակյա ասինխրոն առաջադրանքներում փոփոխականներին հետևելն է: Տեսնել contextvars.

հարազատ

Բուֆերը համարվում է հարակից հենց այն դեպքում, երբ այն կա կամ մեկը Գ-հարակից or Fortran հարակից. Զրոյական բուֆերները C և Fortran-ի հարակից են: Միաչափ զանգվածներում տարրերը պետք է դրվեն հիշողության մեջ միմյանց կողքի՝ զրոյից սկսած ինդեքսների մեծացման կարգով: Բազմաչափ C-հարակից զանգվածներում վերջին ինդեքսը ամենաարագ տատանվում է տարրերը հիշողության հասցեի հերթականությամբ այցելելիս: Այնուամենայնիվ, Fortran-ի հարակից զանգվածներում առաջին ինդեքսը տատանվում է ամենաարագ:

կոռուտին

Կորուտինները ենթածրագրերի ավելի ընդհանրացված ձև են: Ենթածրագրերը մուտքագրվում են մի կետում և դուրս են գալիս մեկ այլ կետում: Կորուտինները կարող են մուտքագրվել, դուրս գալ և վերսկսվել շատ տարբեր կետերում: Դրանք կարող են իրականացվել հետ async def հայտարարություն. Տես նաեւ PEP 492.

կորուտինային ֆունկցիա

Գործառույթ, որը վերադարձնում է a կոռուտին օբյեկտ. Կորուտինային ֆունկցիան կարող է սահմանվել հետ async def հայտարարություն, և կարող է պարունակել awaitasync for, եւ async with հիմնաբառեր. Սրանք ներկայացրել են PEP 492.

CPython

Python ծրագրավորման լեզվի կանոնական իրականացումը, ինչպես տարածված է python.org. «CPython» տերմինը օգտագործվում է այն դեպքում, երբ անհրաժեշտ է տարբերակել այս իրականացումը մյուսներից, ինչպիսիք են Jython-ը կամ IronPython-ը:

դեկորատոր

Մեկ այլ ֆունկցիա վերադարձնող ֆունկցիա, որը սովորաբար կիրառվում է որպես ֆունկցիայի փոխակերպում՝ օգտագործելով @wrapper շարահյուսություն. Դեկորատորների համար սովորական օրինակներ են classmethod() և staticmethod().

Դեկորատորի շարահյուսությունը զուտ շարահյուսական շաքար է, ֆունկցիայի հետևյալ երկու սահմանումները իմաստային առումով համարժեք են.

def f(arg):
    ...
f = staticmethod(f)

@staticmethod
def f(arg):
    ...

Նույն հայեցակարգը գոյություն ունի դասերի համար, բայց այնտեղ ավելի քիչ է օգտագործվում: Տես փաստաթղթերը ֆունկցիայի սահմանումներ և դասի սահմանումներ դեկորատորների մասին ավելին իմանալու համար:

նկարագրիչ

Ցանկացած օբյեկտ, որը սահմանում է մեթոդները __get__()__set__()Կամ __delete__(). Երբ դասի հատկանիշը նկարագրիչ է, նրա հատուկ պարտադիր վարքագիծը գործարկվում է հատկանիշի որոնումից հետո: Սովորաբար, օգտագործելով աբ հատկանիշ ստանալու, սահմանելու կամ ջնջելու համար փնտրում է անվանված օբյեկտը b դասարանի բառարանում համար a, բայց եթե b նկարագրիչ է, կոչվում է համապատասխան նկարագրիչ մեթոդը: Նկարագրիչները հասկանալը բանալին է Python-ի խորը ըմբռնման համար, քանի որ դրանք հիմք են հանդիսանում բազմաթիվ առանձնահատկությունների համար, ներառյալ գործառույթները, մեթոդները, հատկությունները, դասի մեթոդները, ստատիկ մեթոդները և հղումը սուպեր դասերին:

Նկարագրիչների մեթոդների մասին լրացուցիչ տեղեկությունների համար տե՛ս Իրականացնող նկարագրիչներ կամ Նկարագրիչ Ինչպես առաջնորդել.

բառարան

Ասոցիատիվ զանգված, որտեղ կամայական ստեղները քարտեզագրվում են արժեքներին: Ստեղները կարող են լինել ցանկացած առարկա __hash__() և __eq__() մեթոդները։ Պերլում կոչվում է հաշ:

բառարանի ըմբռնում

Կոմպակտ միջոց՝ բոլոր տարրերը կամ դրանց մի մասը կրկնվող տարբերակում մշակելու և արդյունքներով բառարան վերադարձնելու համար: results = {n: n ** 2 for n in range(10)} ստեղծում է բանալի պարունակող բառարան n քարտեզագրված արժեքին n ** 2: Տեսնել Ցուցադրվում է ցուցակների, հավաքածուների և բառարանների համար.

բառարանի դիտում

Օբյեկտները վերադարձել են dict.keys()dict.values(), եւ dict.items() կոչվում են բառարանային դիտումներ։ Նրանք դինամիկ տեսք են տալիս բառարանի գրառումների վրա, ինչը նշանակում է, որ երբ բառարանը փոխվում է, տեսքը արտացոլում է այդ փոփոխությունները: Որպեսզի բառարանի տեսքը դառնա ամբողջական ցուցակի օգտագործում list(dictview): Տեսնել Բառարանի դիտում առարկաներ.

docstring

Տողային բառացի, որը հայտնվում է որպես դասի, ֆունկցիայի կամ մոդուլի առաջին արտահայտություն: Մինչդեռ փաթեթը գործարկվելիս անտեսվում է, այն ճանաչվում է կոմպիլյատորի կողմից և դրվում է __doc__ պարփակող դասի, ֆունկցիայի կամ մոդուլի հատկանիշ: Քանի որ այն հասանելի է ինքզննման միջոցով, այն օբյեկտի փաստաթղթավորման կանոնական վայրն է:

բադ-մեքենագրում

Ծրագրավորման ոճ, որը չի նայում օբյեկտի տեսակին՝ որոշելու, թե արդյոք այն ունի ճիշտ ինտերֆեյս; Փոխարենը, մեթոդը կամ հատկանիշը պարզապես կոչվում կամ օգտագործվում է («Եթե այն նման է բադին և բադին նման է, այն պետք է լինի բադ»:) Ընդգծելով միջերեսները, այլ ոչ թե կոնկրետ տեսակները, լավ մշակված կոդը բարելավում է իր ճկունությունը՝ թույլ տալով. պոլիմորֆ փոխարինում. Duck-typing-ը խուսափում է փորձարկումներից type() or isinstance(). (Այնուամենայնիվ, նշեք, որ բադային մուտքագրումը կարող է լրացվել վերացական բազային դասեր.) Փոխարենը, այն սովորաբար աշխատում է hasattr() թեստեր կամ EAFP ծրագրավորում:

EAFP

Ավելի հեշտ է ներողություն խնդրել, քան թույլտվություն: Python-ի կոդավորման այս սովորական ոճը ենթադրում է վավեր բանալիների կամ ատրիբուտների առկայություն և բռնում է բացառություններ, եթե ենթադրությունը կեղծ է: Այս մաքուր և արագ ոճը բնութագրվում է շատերի առկայությամբ try և except հայտարարություններ. Տեխնիկան հակադրվում է LBYL ոճը տարածված է շատ այլ լեզուների համար, ինչպիսիք են C.

արտահայտություն

Շարահյուսության մի հատված, որը կարելի է գնահատել որոշակի արժեքով: Այլ կերպ ասած, արտահայտությունը արտահայտությունների տարրերի կուտակումն է, ինչպիսիք են բառացիները, անունները, հատկանիշի հասանելիությունը, օպերատորները կամ ֆունկցիայի կանչերը, որոնք բոլորը արժեք են վերադարձնում: Ի տարբերություն շատ այլ լեզուների, ոչ բոլոր լեզվական կառուցվածքներն են արտահայտություններ։ Այնտեղ կան նաեւ հայտարարությունs, որոնք չեն կարող օգտագործվել որպես արտահայտություններ, ինչպիսիք են while. Հանձնարարությունները նույնպես հայտարարություններ են, ոչ թե արտահայտություններ:

ընդլայնման մոդուլ

C կամ C++-ով գրված մոդուլ՝ օգտագործելով Python-ի C API՝ միջուկի և օգտագործողի կոդի հետ փոխազդելու համար:

f-string

Լարային տառերի նախածանցով 'f' or 'F' սովորաբար կոչվում են «f-strings», որը կարճ է ֆորմատավորված լարային բառացիներ, Տես նաեւ PEP 498.

ֆայլի օբյեկտ

Օբյեկտ, որը բացահայտում է ֆայլի վրա հիմնված API (մեթոդներով, ինչպիսիք են read() or write()) հիմքում ընկած ռեսուրսին: Կախված դրա ստեղծման ձևից՝ ֆայլի օբյեկտը կարող է միջնորդել մուտք գործել սկավառակի վրա իրական ֆայլ կամ այլ տեսակի պահեստավորման կամ հաղորդակցման սարք (օրինակ՝ ստանդարտ մուտք/ելք, հիշողության բուֆերներ, վարդակներ, խողովակներ և այլն): . Ֆայլի օբյեկտները նույնպես կոչվում են ֆայլի նման օբյեկտներ or հոսքերի.

Իրականում գոյություն ունի ֆայլի օբյեկտների երեք կատեգորիա՝ հումք երկուական ֆայլեր, բուֆերացված երկուական ֆայլեր և տեքստային ֆայլեր. Նրանց ինտերֆեյսները սահմանվում են io մոդուլ. Ֆայլի օբյեկտ ստեղծելու կանոնական եղանակը օգտագործելն է open() գործառույթը:

ֆայլի նման օբյեկտ

Հոմանիշը ֆայլի օբյեկտ.

ֆայլային համակարգի կոդավորում և սխալների մշակիչ

Կոդավորում և սխալների մշակիչ, որն օգտագործվում է Python-ի կողմից օպերացիոն համակարգից բայթերը վերծանելու և Յունիկոդը օպերացիոն համակարգին կոդավորելու համար:

Ֆայլային համակարգի կոդավորումը պետք է երաշխավորի հաջողությամբ վերծանել բոլոր բայթերը 128-ից ցածր: Եթե ֆայլային համակարգի կոդավորումը չի ապահովում այս երաշխիքը, API գործառույթները կարող են բարձրանալ: UnicodeError.

The sys.getfilesystemencoding() և sys.getfilesystemencodeerrors() գործառույթները կարող են օգտագործվել ֆայլային համակարգի կոդավորումը և սխալների մշակիչը ստանալու համար:

The ֆայլային համակարգի կոդավորում և սխալների մշակիչ կազմաձևված են Python-ի գործարկման ժամանակ PyConfig_Read() գործառույթը: Տես filesystem_encoding և filesystem_errors անդամները PyConfig.

Տես նաեւ տեղային կոդավորում.

որոնիչ

Օբյեկտ, որը փորձում է գտնել լիցքավորող ներմուծվող մոդուլի համար:

Քանի որ Python 3.3-ը, որոնիչի երկու տեսակ կա. մետա ուղի որոնիչներ օգտագործման համար sys.meta_path, եւ ուղու մուտքի որոնիչներ օգտագործման համար sys.path_hooks.

Տեսնել PEP 302PEP 420 և PEP 451 շատ ավելի մանրամասն.

հատակի բաժանում

Մաթեմատիկական բաժանում, որը կլորացվում է մինչև մոտակա ամբողջ թիվը: Հատակի բաժանման օպերատորն է //. Օրինակ՝ արտահայտությունը 11 // 4 գնահատում է 2 ի տարբերություն 2.75 վերադարձված բոց ճշմարիտ բաժանմամբ: Նշենք, որ (-11) // 4 is -3 քանի որ դա է -2.75 կլորացված ներքեւ: Տեսնել PEP 238.

ֆունկցիա

Մի շարք հայտարարություններ, որոնք որոշակի արժեք են վերադարձնում զանգահարողին: Այն կարող է նաև զրոյական կամ ավելի անցնել փաստարկները որը կարող է օգտագործվել մարմնի կատարման համար: Տես նաեւ պարամետրմեթոդԵւ Ֆունկցիայի սահմանումներ բաժնում:

ֆունկցիայի անոտացիա

An անոտացիա ֆունկցիայի պարամետրի կամ վերադարձի արժեքի մասին:

Գործառույթների անոտացիաները սովորաբար օգտագործվում են տեսակի հուշումներՕրինակ, այս ֆունկցիան ակնկալվում է, որ կտևի երկու int փաստարկներ և ակնկալվում է նաև ունենալ մի int վերադարձի արժեքը:

def sum_two_numbers(a: int, b: int) -> int:
   return a + b

Գործառույթների անոտացիայի շարահյուսությունը բացատրվում է բաժնում Ֆունկցիայի սահմանումներ.

Տեսնել փոփոխական անոտացիա և PEP 484, որոնք նկարագրում են այս գործառույթը: Տես նաև Անոտացիաների լավագույն փորձը ծանոթագրությունների հետ աշխատելու լավագույն փորձի համար:

__ապագա__

ապագա հայտարարությունfrom __future__ import <feature>, ուղղորդում է կոմպիլյատորին կազմել ընթացիկ մոդուլը՝ օգտագործելով շարահյուսություն կամ իմաստաբանություն, որը կդառնա ստանդարտ Python-ի ապագա թողարկումում: Այն __future__ մոդուլը փաստում է հնարավոր արժեքները առանձնահատկություն. Ներմուծելով այս մոդուլը և գնահատելով դրա փոփոխականները՝ դուք կարող եք տեսնել, թե երբ է նոր հատկանիշն առաջին անգամ ավելացվել լեզվին և երբ այն կդառնա (կամ դարձավ) լռելյայն.

>>>
>>> import __future__
>>> __future__.division
_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)
աղբի հավաքում

Հիշողության ազատման գործընթացը, երբ այն այլևս չի օգտագործվում: Python-ն իրականացնում է աղբի հավաքում տեղեկանքների հաշվման և ցիկլային աղբահավաքչի միջոցով, որն ի վիճակի է հայտնաբերել և ընդհատել հղման ցիկլերը: Աղբահանը կարելի է կառավարել՝ օգտագործելով gc մոդուլը:

գեներատոր

Գործառույթ, որը վերադարձնում է a գեներատոր կրկնող. Այն կարծես նորմալ ֆունկցիա է, բացառությամբ, որ այն պարունակում է yield արտահայտություններ մի շարք արժեքներ ստեղծելու համար, որոնք կարող են օգտագործվել for-loop-ում կամ որոնք կարող են առբերվել մեկ առ մեկ next() գործառույթը:

Սովորաբար վերաբերում է գեներատորի ֆունկցիային, բայց կարող է վերաբերել a գեներատոր կրկնող որոշ համատեքստերում. Այն դեպքերում, երբ նախատեսված իմաստը պարզ չէ, ամբողջական տերմինների օգտագործումը խուսափում է երկիմաստությունից:

գեներատոր կրկնող

Ա-ի կողմից ստեղծված օբյեկտ գեներատոր գործառույթը:

յուրաքանչյուր yield ժամանակավորապես դադարեցնում է մշակումը, հիշելով գտնվելու վայրի կատարման վիճակը (ներառյալ տեղական փոփոխականները և առկախ փորձի հայտարարությունները): Երբ որ գեներատոր կրկնող վերսկսվում է, այն շարունակում է այնտեղ, որտեղ դադարեցվել է (ի տարբերություն գործառույթների, որոնք նոր են սկսվում ամեն կանչի ժամանակ):

գեներատորի արտահայտություն

Արտահայտություն, որը վերադարձնում է կրկնող: Կարծես սովորական արտահայտություն է, որին հաջորդում է a for կետ, որը սահմանում է հանգույց փոփոխական, միջակայք և կամընտիր if կետ. Համակցված արտահայտությունը արժեքներ է ստեղծում ընդգրկող ֆունկցիայի համար.

>>>
>>> sum(i*i for i in range(10))         # sum of squares 0, 1, 4, ... 81
285
ընդհանուր գործառույթ

Գործառույթ, որը բաղկացած է բազմաթիվ գործառույթներից, որոնք իրականացնում են նույն գործողությունը տարբեր տեսակների համար: Թե ինչ իրականացում պետք է օգտագործվի զանգի ժամանակ, որոշվում է դիսպետչերական ալգորիթմով:

Տես նաեւ մեկ առաքում բառարանի մուտքը, ի functools.singledispatch() դեկորատոր, և PEP 443.

ընդհանուր տեսակ

տիպ որը կարող է պարամետրացվել; սովորաբար ա կոնտեյների դաս ինչպես, օրինակ, list or dict. Օգտագործվում է տեսակի հուշումներ և ծանոթագրություններ.

Լրացուցիչ մանրամասների համար տե՛ս ընդհանուր կեղծանունների տեսակներըPEP 483PEP 484PEP 585Եւ typing մոդուլը:

GIL

Տեսնել գլոբալ թարգմանչի կողպեք.

գլոբալ թարգմանչի կողպեք

Այն մեխանիզմը, որն օգտագործվում է CPython թարգմանիչ՝ հավաստիացնելու, որ միայն մեկ շարանը կատարում է Python-ը բայթկոդ միեւնույն ժամանակ. Սա հեշտացնում է CPython-ի իրականացումը` դարձնելով օբյեկտի մոդելը (ներառյալ կարևոր ներկառուցված տեսակները, ինչպիսիք են. dict) անուղղակիորեն անվտանգ միաժամանակյա մուտքից: Ամբողջ թարգմանչի կողպումը հեշտացնում է թարգմանչի բազմաթելային լինելը՝ ի հաշիվ բազմապրոցեսոր մեքենաների կողմից տրվող զուգահեռության մեծ մասի:

Այնուամենայնիվ, որոշ ընդլայնման մոդուլներ, ստանդարտ կամ երրորդ կողմի, նախագծված են այնպես, որ ազատեն GIL-ը, երբ կատարում են հաշվողական ինտենսիվ առաջադրանքներ, ինչպիսիք են սեղմումը կամ հաշիվը: Բացի այդ, GIL-ը միշտ ազատ է արձակվում I/O կատարելիս:

Անցյալի ջանքերը՝ ստեղծելու «ազատ թելերով» թարգմանիչ (որը կողպում է համօգտագործվող տվյալները շատ ավելի մանրահատիկությամբ) հաջողությամբ չեն պսակվել, քանի որ աշխատանքը տուժել է ընդհանուր մեկ պրոցեսորի դեպքում: Ենթադրվում է, որ կատարողականի այս խնդրի հաղթահարումը կդարձնի իրականացումը շատ ավելի բարդ և, հետևաբար, պահպանումը ավելի ծախսատար:

հեշի վրա հիմնված pyc

Բայթկոդի քեշի ֆայլ, որն օգտագործում է ոչ թե համապատասխան աղբյուրի ֆայլի վերջին փոփոխված ժամանակը, այլ ոչ թե դրա վավերականությունը որոշելու հեշը: Տեսնել Քեշավորված բայթ կոդի անվավերացում.

hashable

Օբյեկտ է hashable եթե այն ունի հեշ արժեք, որը երբեք չի փոխվում իր կյանքի ընթացքում (դա պետք է ա __hash__() մեթոդ), և կարելի է համեմատել այլ օբյեկտների հետ (դա անհրաժեշտ է __eq__() մեթոդ): Hashable օբյեկտները, որոնք համեմատում են հավասար, պետք է ունենան նույն հեշ արժեքը:

Hashability-ը օբյեկտը դարձնում է օգտագործելի որպես բառարանի բանալի և հավաքածուի անդամ, քանի որ այս տվյալների կառուցվածքները օգտագործում են հեշ արժեքը ներսից:

Python-ի անփոփոխելի ներկառուցված օբյեկտների մեծ մասը հեշելի են. փոփոխվող բեռնարկղերը (օրինակ՝ ցուցակները կամ բառարանները) չեն. անփոփոխ բեռնարկղերը (օրինակ՝ բազմոցները և սառեցված կոմպլեկտները) հաշման ենթակա են միայն այն դեպքում, եթե դրանց տարրերը հաշման ենթակա են: Օբյեկտները, որոնք օգտատիրոջ կողմից սահմանված դասերի օրինակներ են, լռելյայնորեն կարելի է հեշել: Նրանք բոլորը համեմատում են անհավասար (բացառությամբ իրենց հետ), և նրանց հեշ արժեքը բխում է դրանցից id().

պարապ

Ինտեգրված զարգացման միջավայր Python-ի համար: IDLE-ն հիմնական խմբագրիչ և թարգմանիչ միջավայր է, որն առաքվում է Python-ի ստանդարտ բաշխմամբ:

անփոփոխ

Ֆիքսված արժեք ունեցող օբյեկտ: Անփոփոխ առարկաները ներառում են թվեր, տողեր և բազմակներ: Նման օբյեկտը չի կարող փոփոխվել: Նոր օբյեկտ պետք է ստեղծվի, եթե այլ արժեք պետք է պահվի: Նրանք կարևոր դեր են խաղում այն ​​վայրերում, որտեղ անհրաժեշտ է մշտական ​​հեշ արժեք, օրինակ՝ որպես բառարանի բանալի:

ներմուծման ուղին

Վայրերի ցանկ (կամ ուղիների մուտքերը) որոնք որոնվում են ուղու վրա հիմնված որոնիչ մոդուլների ներմուծման համար: Ներմուծման ժամանակ տեղանքների այս ցանկը սովորաբար գալիս է sys.path, բայց ենթափաթեթների համար այն կարող է առաջանալ նաև մայր փաթեթից __path__ հատկանիշը:

ներմուծման

Գործընթացը, որով Python կոդը մի մոդուլում հասանելի է դառնում Python կոդը մեկ այլ մոդուլում:

ներմուծող

Օբյեկտ, որը և՛ գտնում է, և՛ բեռնում մոդուլը. երկուսն էլ ա որոնիչ և լիցքավորող առարկա:

ինտերակտիվ

Python-ն ունի ինտերակտիվ թարգմանիչ, ինչը նշանակում է, որ դուք կարող եք մուտքագրել հայտարարություններ և արտահայտություններ թարգմանչի հուշումով, անմիջապես կատարել դրանք և տեսնել դրանց արդյունքները: Պարզապես գործարկեք python առանց փաստարկների (հնարավոր է՝ այն ընտրելով ձեր համակարգչի հիմնական ցանկից): Դա նոր գաղափարներ փորձարկելու կամ մոդուլներն ու փաթեթները ստուգելու շատ հզոր միջոց է (հիշեք help(x)).

մեկնաբանեց

Python-ը մեկնաբանվող լեզու է, ի տարբերություն կազմվածի, թեև տարբերությունը կարող է մշուշոտ լինել բայթկոդ կազմողի առկայության պատճառով: Սա նշանակում է, որ աղբյուրի ֆայլերը կարող են ուղղակիորեն գործարկվել՝ առանց հստակ գործարկվող ստեղծելու, որն այնուհետև գործարկվում է: Մեկնաբանված լեզուները սովորաբար ունենում են ավելի կարճ մշակման/վրիպազերծման ցիկլ, քան կազմվածները, թեև դրանց ծրագրերը սովորաբար ավելի դանդաղ են աշխատում: Տես նաեւ ինտերակտիվ.

թարգմանչի անջատում

Երբ խնդրում են անջատել, Python թարգմանիչը մտնում է հատուկ փուլ, որտեղ աստիճանաբար ազատում է բոլոր հատկացված ռեսուրսները, ինչպիսիք են մոդուլները և տարբեր կարևոր ներքին կառուցվածքները: Այն նաև մի քանի զանգեր է կատարում դեպի աղբահավաք. Սա կարող է գործարկել կոդի գործարկումը օգտագործողի կողմից սահմանված դեստրուկտորներում կամ թույլ ռեֆերանսի հետադարձ զանգերում: Անջատման փուլում գործարկված կոդը կարող է հանդիպել տարբեր բացառությունների, քանի որ այն ռեսուրսները, որոնց վրա նա հենվում է, կարող է այլևս չգործել (ընդհանուր օրինակներ են գրադարանի մոդուլները կամ նախազգուշացնող մեքենաները):

Թարգմանչի անջատման հիմնական պատճառն այն է, որ __main__ մոդուլը կամ գործարկվող սցենարն ավարտվել է:

կրկնող

Օբյեկտ, որն ընդունակ է վերադարձնել իր անդամներին մեկ առ մեկ: Կրկնվողների օրինակները ներառում են հաջորդականության բոլոր տեսակները (օրինակ liststr, եւ tuple) և որոշ ոչ հաջորդական տեսակներ, ինչպիսիք են dictֆայլի օբյեկտներ, և ցանկացած դասի օբյեկտներ, որոնք դուք սահմանում եք an-ով __iter__() մեթոդով կամ ա __getitem__() մեթոդ, որն իրականացնում է Հերթականություն իմաստաբանություն.

Կրկնվողները կարող են օգտագործվել ա for հանգույց և շատ այլ վայրերում, որտեղ անհրաժեշտ է հաջորդականություն (zip()map(),…). Երբ կրկնվող օբյեկտը փոխանցվում է որպես արգումենտ ներկառուցված ֆունկցիային iter(), այն օբյեկտի համար վերադարձնում է կրկնող: Այս կրկնիչը հարմար է արժեքների բազմության վրա մեկ անցման համար: Կրկնվող թվեր օգտագործելիս սովորաբար անհրաժեշտ չէ զանգահարել iter() կամ ինքներդ զբաղվեք կրկնող օբյեկտներով: Այն for հայտարարությունը դա անում է ավտոմատ կերպով ձեզ համար՝ ստեղծելով ժամանակավոր անանուն փոփոխական, որը պահում է iterator-ը օղակի տևողության համար: Տես նաեւ կրկնարարհերթականություն, եւ գեներատոր.

կրկնարար

Օբյեկտ, որը ներկայացնում է տվյալների հոսք: Կրկնվող զանգեր կրկնողին __next__() մեթոդը (կամ փոխանցելով այն ներկառուցված ֆունկցիային next()) վերադարձնել հոսքի հաջորդական տարրերը: Երբ այլևս տվյալներ չկան, ա StopIteration փոխարենը բարձրացվում է բացառություն։ Այս պահին կրկնող օբյեկտը սպառված է և ցանկացած հետագա զանգեր դեպի իրեն __next__() մեթոդ պարզապես բարձրացնել StopIteration կրկին. Իտերատորներից պահանջվում է ունենալ ան __iter__() մեթոդ, որը վերադարձնում է iterator օբյեկտն ինքնին, այնպես որ յուրաքանչյուր կրկնող է նաև կրկնվող և կարող է օգտագործվել շատ վայրերում, որտեղ ընդունվում են այլ կրկնվողներ: Հատկանշական բացառություն է ծածկագիրը, որը փորձում է բազմակի կրկնություններ անցնել: Կոնտեյների առարկա (օրինակ՝ ա list) արտադրում է թարմ նոր կրկնողություն ամեն անգամ, երբ այն փոխանցում եք iter() գործառույթը կամ օգտագործել այն ա for հանգույց. Սա կրկնող սարքի միջոցով փորձելը պարզապես կվերադարձնի նույն սպառված կրկնող օբյեկտը, որն օգտագործվում էր նախորդ կրկնվող անցումում, այն դարձնելով դատարկ տարայի տեսք:

Լրացուցիչ տեղեկություններ կարելի է գտնել այստեղ Iterator տեսակները.

CPython-ի իրականացման մանրամասները. CPython-ը հետևողականորեն չի կիրառում կրկնվողի սահմանած պահանջը __iter__().

հիմնական գործառույթը

Հիմնական ֆունկցիան կամ համադրման ֆունկցիան կանչելի է, որը վերադարձնում է արժեք, որն օգտագործվում է տեսակավորման կամ պատվիրման համար: Օրինակ, locale.strxfrm() օգտագործվում է տեսակավորման բանալի արտադրելու համար, որը տեղյակ է տեղային տեսակավորման հատուկ պայմանագրերին:

Python-ի մի շարք գործիքներ ընդունում են հիմնական գործառույթները՝ վերահսկելու, թե ինչպես են տարրերը դասավորվում կամ խմբավորվում: Դրանք ներառում են min()max()sorted()list.sort()heapq.merge()heapq.nsmallest()heapq.nlargest(), եւ itertools.groupby().

Հիմնական գործառույթ ստեղծելու մի քանի եղանակ կա: Օրինակ. որ str.lower() մեթոդը կարող է ծառայել որպես առանցքային ֆունկցիա մեծատառերի անզգայուն տեսակների համար: Որպես այլընտրանք, հիմնական գործառույթը կարող է կառուցվել a lambda արտահայտություն, ինչպիսին է lambda r: (r[0], r[2]). Նաեւ, operator մոդուլը ապահովում է երեք հիմնական ֆունկցիաների կառուցողներ. attrgetter()itemgetter(), եւ methodcaller(): Տես նաեւ Տեսակավորում ԻՆՉՊԵՍ հիմնական գործառույթներ ստեղծելու և օգտագործելու օրինակներ:

հիմնաբառի փաստարկ

Տեսնել փաստարկ.

Lambda

Անանուն ներդիրային ֆունկցիա, որը բաղկացած է մեկից արտահայտություն որը գնահատվում է ֆունկցիան կանչելիս: Լամբդա ֆունկցիա ստեղծելու շարահյուսությունն է lambda [parameters]: expression

LBYL

Նայեք նախքան ցատկելը: Կոդավորման այս ոճը բացահայտորեն ստուգում է նախապայմանները՝ նախքան զանգեր կամ որոնումներ կատարելը: Այս ոճը հակադրվում է EAFP մոտեցում և բնութագրվում է շատերի առկայությամբ if հայտարարություններ:

Բազմաթելային միջավայրում LBYL մոտեցումը կարող է վտանգի ենթարկել մրցավազքի պայմանները «նայող» և «ցատկելու» միջև: Օրինակ՝ կոդը, if key in mapping: return mapping[key] կարող է ձախողվել, եթե մեկ այլ թեմա հեռացվի հիմնական - ից քարտեզագրման թեստից հետո, բայց նախքան որոնումը: Այս խնդիրը կարող է լուծվել կողպեքներով կամ օգտագործելով EAFP մոտեցումը:

տեղային կոդավորում

Unix-ում դա LC_CTYPE տեղանքի կոդավորումն է: Այն կարող է սահմանվել հետ locale.setlocale(locale.LC_CTYPE, new_locale).

Windows-ում դա ANSI ծածկագրի էջն է (օրինակ՝ cp1252).

locale.getpreferredencoding(False) կարող է օգտագործվել տեղային կոդավորում ստանալու համար:

Python-ը օգտագործում է ֆայլային համակարգի կոդավորում և սխալների մշակիչ փոխարկել Unicode ֆայլերի անունների և բայթերի ֆայլերի անունների միջև:

ցուցակ

Ներկառուցված Python հերթականություն. Չնայած իր անվանը, այն ավելի շատ նման է այլ լեզուների զանգվածին, քան կապակցված ցուցակին, քանի որ տարրերի հասանելիությունը O(1) է:

ցուցակ հասկացողություն

Կոմպակտ եղանակ՝ բոլոր տարրերը կամ դրանց մի մասը հաջորդականությամբ մշակելու և արդյունքներով ցուցակ վերադարձնելու համար: result = ['{:#04x}'.format(x) for x in range(256) if x % 2 == 0] ստեղծում է տողերի ցանկ, որոնք պարունակում են զույգ վեցանկյուն թվեր (0x..) 0-ից 255 միջակայքում: if կետը պարտադիր չէ: Եթե ​​բաց թողնվի, բոլոր տարրերը ներս են range(256) վերամշակվում են:

լիցքավորող

Օբյեկտ, որը բեռնում է մոդուլը: Այն պետք է սահմանի անունով մեթոդ load_module(). Բեռնիչը սովորաբար վերադարձվում է a որոնիչ: Տեսնել PEP 302 մանրամասների համար և importlib.abc.Loader համար վերացական բազային դաս.

կախարդական մեթոդ

Ոչ պաշտոնական հոմանիշ հատուկ մեթոդ.

քարտեզագրման

Կոնտեյներային օբյեկտ, որն աջակցում է կամայական բանալիների որոնումներին և իրականացնում է նշված մեթոդները Mapping or MutableMapping վերացական բազային դասեր. Օրինակները ներառում են dictcollections.defaultdictcollections.OrderedDict և collections.Counter.

մետա ճանապարհ որոնիչ

որոնիչ խուզարկությամբ վերադարձել է sys.meta_path. Meta ուղի որոնիչները կապված են, բայց տարբեր են ուղու մուտքի որոնիչներ.

Տեսնել importlib.abc.MetaPathFinder մեթոդների համար, որոնք իրականացնում են մետա ուղի որոնողները:

մետակլաս

Դասարանի դաս. Դասի սահմանումները ստեղծում են դասի անվանում, դասի բառարան և բազային դասերի ցուցակ: Metaclass-ը պատասխանատու է այդ երեք փաստարկները վերցնելու և դասը ստեղծելու համար: Օբյեկտ-կողմնորոշված ​​ծրագրավորման լեզուներից շատերը ապահովում են լռելյայն իրականացում: Python-ին առանձնահատուկ է դարձնում այն, որ հնարավոր է ստեղծել հատուկ մետակլասներ: Օգտատերերի մեծամասնությունը երբեք այս գործիքի կարիքը չունի, բայց երբ անհրաժեշտություն է առաջանում, մետակլասները կարող են հզոր, էլեգանտ լուծումներ տալ: Դրանք օգտագործվել են ատրիբուտների հասանելիության գրանցման, thread-safety ավելացնելու, օբյեկտների ստեղծմանը հետևելու, սինգլտոնների իրականացման և շատ այլ առաջադրանքների համար:

Լրացուցիչ տեղեկություններ կարելի է գտնել այստեղ Մետա դասեր.

մեթոդ

Գործառույթ, որը սահմանվում է դասի մարմնի ներսում: Եթե ​​կոչվում է որպես այդ դասի օրինակի հատկանիշ, մեթոդը կստանա օրինակի օբյեկտը որպես իր առաջին փաստարկ (որը սովորաբար կոչվում է self): Տեսնել ֆունկցիա և բնադրված շրջանակ.

մեթոդի լուծման կարգը

Method Resolution Order-ը այն հերթականությունն է, որով բազային դասերը որոնվում են անդամի որոնման ընթացքում: Տեսնել Python 2.3 մեթոդի լուծման կարգը 2.3-ի թողարկումից ի վեր Python թարգմանչի կողմից օգտագործվող ալգորիթմի մանրամասների համար:

մոդուլ

Օբյեկտ, որը ծառայում է որպես Python կոդի կազմակերպական միավոր։ Մոդուլներն ունեն Python կամայական օբյեկտներ պարունակող անվանատարածք: Մոդուլները բեռնվում են Python գործընթացի միջոցով ներմուծման.

Տես նաեւ, փաթեթ.

մոդուլի սպեկտր

Անվանատարածք, որը պարունակում է ներմուծման հետ կապված տեղեկատվություն, որն օգտագործվում է մոդուլը բեռնելու համար: Մի օրինակ importlib.machinery.ModuleSpec.

MRO

Տեսնել մեթոդի լուծման կարգը.

փոփոխական

Փոփոխական օբյեկտները կարող են փոխել իրենց արժեքը, բայց պահպանել իրենց արժեքը id(), Տես նաեւ անփոփոխ.

անունը tuple

«Անվանված tuple» տերմինը վերաբերում է ցանկացած տեսակի կամ դասի, որը ժառանգում է tuple-ից և որի ինդեքսավորվող տարրերը նույնպես հասանելի են անվանակոչված ատրիբուտների միջոցով: Տեսակը կամ դասը կարող են ունենալ նաև այլ հատկանիշներ:

Մի քանի ներկառուցված տեսակներ կոչվում են tuples, ներառյալ վերադարձված արժեքները time.localtime() և os.stat(). Մեկ այլ օրինակ է sys.float_info:

>>>
>>> sys.float_info[1]                   # indexed access
1024
>>> sys.float_info.max_exp              # named field access
1024
>>> isinstance(sys.float_info, tuple)   # kind of tuple
True

Որոշ անվանված tuples ներկառուցված տեսակներ են (օրինակ, վերը նշված օրինակները): Որպես այլընտրանք, անվանված tuple կարող է ստեղծվել սովորական դասի սահմանումից, որը ժառանգում է tuple և դա սահմանում է անվանված դաշտերը: Նման դասը կարելի է գրել ձեռքով կամ ստեղծվել գործարանային ֆունկցիայով collections.namedtuple(). Վերջին տեխնիկան նաև ավելացնում է որոշ լրացուցիչ մեթոդներ, որոնք հնարավոր է չգտնվեն ձեռքով գրված կամ ներկառուցված անուններով զուգարաններում:

անուն տարածություն

Այն վայրը, որտեղ պահվում է փոփոխականը: Անվանատարածքներն իրականացվում են որպես բառարաններ: Կան լոկալ, գլոբալ և ներկառուցված անունների տարածքներ, ինչպես նաև օբյեկտների մեջ (մեթոդներում) ներկառուցված անունների տարածքներ: Անվանատարածքներն աջակցում են մոդուլյարությանը՝ կանխելով անունների կոնֆլիկտները: Օրինակ, գործառույթները builtins.open և os.open() առանձնանում են իրենց անվանատարածքներով. Անվանատարածքները նաև օգնում են ընթեռնելիությանը և պահպանմանը` պարզ դարձնելով, թե որ մոդուլն է իրականացնում գործառույթը: Օրինակ՝ գրելը random.seed() or itertools.islice() հստակեցնում է, որ այդ գործառույթներն իրականացվում են random և itertools մոդուլներ, համապատասխանաբար:

անվանատարածքի փաթեթ

PEP 420 փաթեթ որը ծառայում է միայն որպես ենթափաթեթների կոնտեյներ։ Անվանատարածքի փաթեթները կարող են չունենալ ֆիզիկական ներկայացում և, մասնավորապես, նման չեն a սովորական փաթեթ քանի որ նրանք չունեն __init__.py ֆայլը.

Տես նաեւ, մոդուլ.

բնադրված շրջանակ

Պարբերական սահմանման մեջ փոփոխականին անդրադառնալու ունակություն: Օրինակ՝ մեկ այլ ֆունկցիայի ներսում սահմանված ֆունկցիան կարող է վերաբերել արտաքին ֆունկցիայի փոփոխականներին: Նկատի ունեցեք, որ տեղադրված շրջանակները լռելյայն աշխատում են միայն հղման և ոչ նշանակման համար: Տեղական փոփոխականները և՛ կարդում, և՛ գրում են ամենաներքին շրջանակում: Նմանապես, գլոբալ փոփոխականները կարդում և գրում են գլոբալ անվանատարածքում: Այն nonlocal թույլ է տալիս գրել արտաքին շրջանակներով:

նոր ոճի դաս

Դասերի համի հին անվանումն այժմ օգտագործվում է դասի բոլոր առարկաների համար: Python-ի ավելի վաղ տարբերակներում միայն նոր ոճի դասերը կարող էին օգտագործել Python-ի ավելի նոր, բազմակողմանի հնարավորությունները, ինչպիսիք են. __slots__, նկարագրիչներ, հատկություններ, __getattribute__(), դասի մեթոդներ և ստատիկ մեթոդներ:

օբյեկտ

Ցանկացած տվյալ՝ վիճակով (հատկանիշներ կամ արժեք) և սահմանված վարքագիծ (մեթոդներ): Նաև ցանկացածի վերջնական բազային դասը նոր ոճի դաս.

փաթեթ

Պիթոն մոդուլ որոնք կարող են պարունակել ենթամոդուլներ կամ ռեկուրսիվ՝ ենթափաթեթներ։ Տեխնիկապես փաթեթը Python մոդուլ է, որն ունի an __path__ հատկանիշը:

Տես նաեւ, սովորական փաթեթ և անվանատարածքի փաթեթ.

պարամետր

Անվանված էությունը ա ֆունկցիա (կամ մեթոդի) սահմանում, որը սահմանում է ան փաստարկ (կամ որոշ դեպքերում՝ արգումենտներ), որոնք ֆունկցիան կարող է ընդունել։ Կան հինգ տեսակի պարամետր.

  • դիրքային-կամ հիմնաբառ: նշում է արգումենտ, որը կարող է փոխանցվել նաև դիրքային առումով կամ որպես հիմնաբառի փաստարկ. Սա, օրինակ, լռելյայն տեսակի պարամետր է ֆու և բար հետեւյալ:

    def func(foo, bar=None): ...
    
  • միայն դիրքային: նշում է արգումենտ, որը կարող է տրվել միայն դիրքով: Միայն դիրքային պարամետրերը կարող են սահմանվել՝ ներառելով a / նիշը դրանցից հետո ֆունկցիայի սահմանման պարամետրերի ցանկում, օրինակ posonly1 և posonly2 հետեւյալ:

    def func(posonly1, posonly2, /, positional_or_keyword): ...
    
  • միայն հիմնաբառ: նշում է արգումենտ, որը կարող է տրամադրվել միայն հիմնաբառով: Միայն հիմնաբառի պարամետրերը կարող են սահմանվել՝ ներառելով մեկ var-դիրքային պարամետր կամ մերկ * դրանցից առաջ ֆունկցիայի սահմանման պարամետրերի ցանկում, օրինակ kw_ only1 և kw_ only2 հետեւյալ:

    def func(arg, *, kw_only1, kw_only2): ...
    
  • var-դիրքային: նշում է, որ կարող է տրամադրվել դիրքային փաստարկների կամայական հաջորդականություն (ի լրումն այլ պարամետրերով արդեն ընդունված դիրքային փաստարկների): Նման պարամետրը կարող է սահմանվել՝ նախադրելով պարամետրի անունը *, Օրինակ, աղեղներ հետեւյալ:

    def func(*args, **kwargs): ...
    
  • var-հիմնաբառ: նշում է, որ կարող են կամայականորեն տրամադրվել բազմաթիվ հիմնաբառերի արգումենտներ (ի լրումն այլ պարամետրերով արդեն ընդունված բանալի բառի փաստարկների): Նման պարամետրը կարելի է սահմանել՝ նախադրելով պարամետրի անունը **, Օրինակ, կվարգներ վերը նշված օրինակում:

Պարամետրերը կարող են նշել և՛ ընտրովի, և՛ պահանջվող արգումենտները, ինչպես նաև որոշ ընտրովի արգումենտների լռելյայն արժեքներ:

Տես նաեւ փաստարկ բառարանի մուտքը, ՀՏՀ հարցը արգումենտների և պարամետրերի տարբերությունըԷ, inspect.Parameter դասարան, ի Ֆունկցիայի սահմանումներ բաժինը, և PEP 362.

ուղու մուտքը

Մեկ դիրք վրա ներմուծման ուղին , որի ուղու վրա հիմնված որոնիչ խորհրդակցում է ներմուծման համար մոդուլներ գտնելու համար:

ուղու մուտքի որոնիչ

որոնիչ վերադարձված է կանչվողի կողմից sys.path_hooks (այսինքն ա ուղու մուտքի կեռիկ) որը գիտի, թե ինչպես գտնել տրված մոդուլները a ուղու մուտքը.

Տեսնել importlib.abc.PathEntryFinder այն մեթոդների համար, որոնք իրականացնում են ուղու մուտքի որոնիչները:

ուղու մուտքի կեռիկ

A callable վրա sys.path_hook ցուցակ, որը վերադարձնում է ա ուղու մուտքի որոնիչ եթե այն գիտի, թե ինչպես գտնել մոդուլներ կոնկրետի վրա ուղու մուտքը.

ուղու վրա հիմնված որոնիչ

Մեկը լռելյայն մետա ուղի որոնիչներ որը որոնում է ան ներմուծման ուղին մոդուլների համար.

ուղու նման օբյեկտ

Օբյեկտ, որը ներկայացնում է ֆայլային համակարգի ուղին: Ուղու նմանվող օբյեկտը կամ ա str or bytes ուղի ներկայացնող օբյեկտ կամ այն ​​իրականացնող օբյեկտ os.PathLike արձանագրություն։ Օբյեկտ, որն աջակցում է os.PathLike արձանագրությունը կարող է փոխարկվել a str or bytes ֆայլային համակարգի ուղին՝ զանգահարելով os.fspath() ֆունկցիա; os.fsdecode() և os.fsencode() կարող է օգտագործվել երաշխավորելու համար ա str or bytes արդյունքի փոխարեն, համապատասխանաբար: Ներկայացրեց PEP 519.

Եռանդ

Python-ի ընդլայնման առաջարկ. PEP-ը նախագծային փաստաթուղթ է, որը տեղեկատվություն է տրամադրում Python համայնքին կամ նկարագրում է Python-ի կամ նրա գործընթացների կամ միջավայրի նոր առանձնահատկությունը: PEP-ները պետք է ներկայացնեն հակիրճ տեխնիկական բնութագրեր և առաջարկվող հատկանիշների հիմնավորում:

PEP-ները նախատեսված են լինել հիմնական մեխանիզմները՝ առաջարկելու հիմնական նոր առանձնահատկություններ, համայնքի տվյալների հավաքագրման համար խնդրի վերաբերյալ և փաստաթղթավորելու նախագծային որոշումները, որոնք մտել են Python-ում: PEP-ի հեղինակը պատասխանատու է համայնքի ներսում կոնսենսուսի ձևավորման և հակասական կարծիքների փաստագրման համար:

Տեսնել PEP 1.

բաժին

Ֆայլերի մի շարք մեկ գրացուցակում (հնարավոր է պահված zip ֆայլում), որոնք նպաստում են անվանատարածքի փաթեթին, ինչպես սահմանված է PEP 420.

դիրքային փաստարկ

Տեսնել փաստարկ.

ժամանակավոր API

Ժամանակավոր API-ն այն է, որը միտումնավոր բացառվել է ստանդարտ գրադարանի հետադարձ համատեղելիության երաշխիքներից: Թեև նման ինտերֆեյսներում մեծ փոփոխություններ չեն սպասվում, քանի դեռ դրանք նշվում են որպես ժամանակավոր, հետընթաց անհամատեղելի փոփոխություններ (մինչև միջերեսի հեռացումը ներառյալ) կարող են տեղի ունենալ, եթե հիմնական մշակողները անհրաժեշտ համարեն: Նման փոփոխություններն անհատույց չեն կատարվի. դրանք տեղի կունենան միայն այն դեպքում, եթե բացահայտվեն լուրջ հիմնարար թերություններ, որոնք բաց են թողնվել մինչև API-ի ընդգրկումը:

Նույնիսկ ժամանակավոր API-ների համար, հետընթաց անհամատեղելի փոփոխությունները դիտվում են որպես «վերջին միջոցի լուծում». դեռևս կկատարվի ամեն փորձ՝ գտնելու հետադարձ համատեղելի լուծում ցանկացած հայտնաբերված խնդրի համար:

Այս գործընթացը թույլ է տալիս ստանդարտ գրադարանին շարունակել զարգանալ ժամանակի ընթացքում՝ առանց երկար ժամանակ փակելու դիզայնի խնդրահարույց սխալները: Տեսնել PEP 411 Մանրամասների համար

ժամանակավոր փաթեթ

Տեսնել ժամանակավոր API.

Python 3000

Python 3.x թողարկման գծի մականունը (ստեղծվել է վաղուց, երբ 3-րդ տարբերակի թողարկումը ինչ-որ բան էր հեռավոր ապագայում:) Սա նաև հապավում է «Py3k»:

Պիթոնիկ

Գաղափար կամ կոդի կտոր, որը սերտորեն հետևում է Python լեզվի ամենատարածված բառակապակցություններին, այլ ոչ թե կոդն իրագործելու այլ լեզուների համար ընդհանուր հասկացություններով: Օրինակ՝ Python-ում տարածված արտահայտությունն է՝ a-ի միջոցով պտտել կրկնվողի բոլոր տարրերը for հայտարարություն. Շատ այլ լեզուներ չունեն այս տեսակի կառուցվածք, ուստի Python-ին անծանոթ մարդիկ երբեմն օգտագործում են թվային հաշվիչը.

for i in range(len(food)):
    print(food[i])

Ի տարբերություն մաքրող, Pythonic մեթոդի.

for piece in food:
    print(piece)
որակավորված անուն

Կետավոր անուն, որը ցույց է տալիս «ուղին» մոդուլի գլոբալ շրջանակից դեպի այդ մոդուլում սահմանված դաս, ֆունկցիա կամ մեթոդ, ինչպես սահմանված է. PEP 3155. Բարձր մակարդակի գործառույթների և դասերի համար որակավորված անունը նույնն է, ինչ օբյեկտի անունը.

>>>
>>> class C:
...     class D:
...         def meth(self):
...             pass
...
>>> C.__qualname__
'C'
>>> C.D.__qualname__
'C.D'
>>> C.D.meth.__qualname__
'C.D.meth'

Երբ օգտագործվում է մոդուլներին անդրադառնալու համար, լրիվ որակավորված անուն նշանակում է ամբողջ կետավոր ուղին դեպի մոդուլ, ներառյալ ցանկացած մայր փաթեթ, օրինակ email.mime.text:

>>>
>>> import email.mime.text
>>> email.mime.text.__name__
'email.mime.text'
տեղեկանքների քանակը

Օբյեկտին հղումների քանակը: Երբ օբյեկտի հղման քանակն ընկնում է զրոյի, այն տեղաբաշխվում է: Հղումների հաշվումը սովորաբար տեսանելի չէ Python կոդի համար, բայց դա հիմնական տարրն է CPython իրականացում։ Այն sys մոդուլը սահմանում է ա getrefcount() ֆունկցիա, որը ծրագրավորողները կարող են կանչել՝ որոշակի օբյեկտի համար հղումների քանակը վերադարձնելու համար:

սովորական փաթեթ

Ավանդական փաթեթ, օրինակ՝ գրացուցակ, որը պարունակում է an __init__.py ֆայլը.

Տես նաեւ, անվանատարածքի փաթեթ.

__ slots__

Հայտարարություն դասի ներսում, որը խնայում է հիշողությունը՝ նախապես հայտարարելով տարածք օրինակ ատրիբուտների համար և վերացնելով օրինակների բառարանները: Չնայած հանրաճանաչ, տեխնիկան որոշակիորեն բարդ է ճիշտ ձեռք բերելու համար և լավագույնս վերապահված է հազվադեպ դեպքերի համար, երբ հիշողության համար կարևոր հավելվածում կան մեծ թվով օրինակներ:

հերթականություն

An կրկնող որն աջակցում է տարրերի արդյունավետ հասանելիությանը՝ օգտագործելով ամբողջ թվային ինդեքսները __getitem__() հատուկ մեթոդ և սահմանում ա __len__() մեթոդ, որը վերադարձնում է հաջորդականության երկարությունը: Ներկառուցված հաջորդականության որոշ տեսակներ են liststrtuple, եւ bytes. Նշենք, որ dict աջակցում է նաև __getitem__() և __len__(), բայց համարվում է ավելի շուտ քարտեզագրում, քան հաջորդականություն, քանի որ որոնումները օգտագործում են կամայական անփոփոխ ստեղներ, այլ ոչ թե ամբողջ թվեր:

The collections.abc.Sequence վերացական բազային դասը սահմանում է շատ ավելի հարուստ ինտերֆեյս, որը դուրս է գալիս արդարությունից __getitem__() և __len__()Ավելացնելով, count()index()__contains__(), եւ __reversed__(). Տեսակները, որոնք իրականացնում են այս ընդլայնված ինտերֆեյսը, կարող են ուղղակիորեն գրանցվել register().

սահմանել ըմբռնում

Կոմպակտ եղանակ՝ բոլոր տարրերը կամ դրանց մի մասը կրկնվող ձևով մշակելու և արդյունքներով հավաքածու վերադարձնելու համար: results = {c for c in 'abracadabra' if c not in 'abc'} առաջացնում է տողերի հավաքածու {'r', 'd'}: Տեսնել Ցուցադրվում է ցուցակների, հավաքածուների և բառարանների համար.

մեկ առաքում

Ձեւը ընդհանուր գործառույթ առաքում, որտեղ իրականացումն ընտրվում է մեկ փաստարկի տեսակի հիման վրա:

կտոր

Օբյեկտ, որը սովորաբար պարունակում է a-ի մի մասը հերթականություն. Հատված է ստեղծվում՝ օգտագործելով ստորգետնյա նշումը, [] երկու կետով թվերի միջև, երբ տրված են մի քանիսը, օրինակ՝ in variable_name[1:3:5]. Փակագծի (ենթագրային) նշումը օգտագործում է slice առարկաներ ներսից:

հատուկ մեթոդ

Մեթոդ, որն անուղղակիորեն կոչվում է Python-ի կողմից որոշակի գործողություններ կատարելու համար, ինչպիսին է հավելումը: Նման մեթոդներն ունեն անուններ, որոնք սկսվում և ավարտվում են կրկնակի ընդգծումներով: Հատուկ մեթոդները փաստաթղթավորված են Հատուկ մեթոդների անվանումներ.

հայտարարություն

Հայտարարությունը փաթեթի մի մասն է (կոդի «բլոկ»): Հայտարարությունը կամ է արտահայտություն կամ հիմնաբառով մի քանի կառուցվածքներից մեկը, ինչպես օրինակ ifwhile or for.

ուժեղ հղում

Python-ի C API-ում ուժեղ հղումը հղում է այն օբյեկտին, որը մեծացնում է օբյեկտի հղման թիվը, երբ այն ստեղծվում է, և նվազեցնում է օբյեկտի հղումների քանակը, երբ այն ջնջվում է:

The Py_NewRef() ֆունկցիան կարող է օգտագործվել օբյեկտի նկատմամբ ուժեղ հղում ստեղծելու համար: Սովորաբար, որ Py_DECREF() Գործառույթը պետք է կանչվի ուժեղ հղումի վրա՝ նախքան ուժեղ հղումի շրջանակից դուրս գալը՝ մեկ հղումի արտահոսքից խուսափելու համար:

Տես նաեւ, փոխառված տեղեկանք.

տեքստի կոդավորում

Python-ում տողը Unicode ծածկագրի կետերի հաջորդականությունն է (տիրույթում U+0000-U+10FFFF): Տողերը պահելու կամ փոխանցելու համար այն պետք է սերիականացվի որպես բայթերի հաջորդականություն:

Լարի սերիականացումը բայթերի հաջորդականության մեջ հայտնի է որպես «կոդավորում», իսկ տողի վերստեղծումը բայթերի հաջորդականությունից հայտնի է որպես «վերծանում»:

Կան տարբեր տեքստերի սերիականացման մի շարք codecs, որոնք միասին կոչվում են «տեքստային կոդավորումներ»։

տեքստային ֆայլ

ֆայլի օբյեկտ կարողանալ կարդալ և գրել str առարկաներ. Հաճախ տեքստային ֆայլը իրականում մուտք է գործում բայթ ուղղված տվյալների հոսք և կարգավորում է այն տեքստի կոդավորում ավտոմատ կերպով։ Տեքստային ֆայլերի օրինակներ են տեքստային ռեժիմով բացված ֆայլերը ('r' or 'w'), sys.stdinsys.stdout, և դեպքեր io.StringIO.

Տես նաեւ, երկուական ֆայլ ֆայլի օբյեկտի համար, որը կարող է կարդալ և գրել բայթ նման առարկաներ.

եռակի մեջբերումով տող

Տող, որը կապված է կամ չակերտի (”) կամ ապաստրոֆի (') երեք օրինակներով: Թեև դրանք չեն տրամադրում որևէ գործառույթ, որը հասանելի չէ մեկ մեջբերումով տողերով, դրանք օգտակար են մի շարք պատճառներով: Նրանք թույլ են տալիս ներառել չակերտավոր մեկ և կրկնակի չակերտներ տողի մեջ և կարող են ընդգրկել մի քանի տողեր՝ առանց շարունակական նիշի օգտագործման, ինչը հատկապես օգտակար է դարձնում փաստաթղթերի տողերը գրելիս:

տիպ

Python օբյեկտի տեսակը որոշում է, թե ինչ տեսակի օբյեկտ է այն; յուրաքանչյուր առարկա ունի իր տեսակը. Օբյեկտի տեսակը հասանելի է որպես իր __class__ հատկանիշ կամ կարող է առբերվել type(obj).

տիպի այլանուն

Տիպի հոմանիշ, որը ստեղծվում է նույնացուցիչին տեսակը վերագրելով:

Տիպերի անունները օգտակար են պարզեցնելու համար տեսակի հուշումներ, Օրինակ:

def remove_gray_shades(
        colors: list[tuple[int, int, int]]) -> list[tuple[int, int, int]]:
    pass

կարելի է ավելի ընթեռնելի դարձնել այսպես.

Color = tuple[int, int, int]

def remove_gray_shades(colors: list[Color]) -> list[Color]:
    pass

Տեսնել typing և PEP 484, որոնք նկարագրում են այս գործառույթը:

մուտքագրել հուշում

An անոտացիա որը սահմանում է փոփոխականի, դասի հատկանիշի կամ ֆունկցիայի պարամետրի կամ վերադարձի արժեքի ակնկալվող տեսակը:

Տիպի ակնարկները կամընտիր են և չեն պարտադրվում Python-ի կողմից, սակայն դրանք օգտակար են ստատիկ տիպերի վերլուծության գործիքների համար և օգնում են IDE-ներին՝ կոդի լրացման և վերամշակման համար:

Համաշխարհային փոփոխականների, դասի ատրիբուտների և ֆունկցիաների տիպի ակնարկներ, բայց ոչ տեղական փոփոխականների, կարելի է մուտք գործել՝ օգտագործելով typing.get_type_hints().

Տեսնել typing և PEP 484, որոնք նկարագրում են այս գործառույթը:

ունիվերսալ նոր տողեր

Տեքստի հոսքերի մեկնաբանման եղանակ, որտեղ բոլոր հետևյալները ճանաչվում են որպես տող վերջացող. '\n', Windows-ի կոնվենցիան '\r\n', և հին Macintosh կոնվենցիան '\r': Տեսնել PEP 278 և PEP 3116, Ինչպես նաեւ bytes.splitlines() լրացուցիչ օգտագործման համար։

փոփոխական անոտացիա

An անոտացիա փոփոխականի կամ դասի հատկանիշի:

Փոփոխական կամ դասի հատկանիշ նշելիս հանձնարարությունը կամընտիր է.

class C:
    field: 'annotation'

Փոփոխական ծանոթագրությունները սովորաբար օգտագործվում են տեսակի հուշումներՕրինակ, այս փոփոխականը ակնկալվում է վերցնել int արժեքները.

count: int = 0

Փոփոխական անոտացիայի շարահյուսությունը բացատրվում է բաժնում Նշված առաջադրանքների հայտարարություններ.

Տեսնել ֆունկցիայի անոտացիաPEP 484 և PEP 526, որոնք նկարագրում են այս գործառույթը: Տես նաև Անոտացիաների լավագույն փորձը ծանոթագրությունների հետ աշխատելու լավագույն փորձի համար:

վիրտուալ միջավայր

Համագործակցաբար մեկուսացված գործարկման միջավայր, որը Python-ի օգտատերերին և հավելվածներին թույլ է տալիս տեղադրել և թարմացնել Python բաշխման փաթեթները՝ չխանգարելով նույն համակարգում աշխատող Python-ի այլ հավելվածների վարքագծին:

Տես նաեւ, venv.

վիրտուալ մեքենա

Համակարգիչ, որն ամբողջությամբ սահմանված է ծրագրային ապահովման մեջ: Python-ի վիրտուալ մեքենան իրականացնում է բայթկոդ թողարկված բայթկոդ կազմողի կողմից:

Պիթոնի Զեն

Python-ի նախագծման սկզբունքների և փիլիսոփայությունների ցանկ, որոնք օգտակար են լեզուն հասկանալու և օգտագործելու համար: Ցուցակը կարելի է գտնել՝ մուտքագրելով «import thisինտերակտիվ հուշումով:

Բագերի հետ գործ ունենալը

Python-ը հասուն ծրագրավորման լեզու է, որը կայունության համբավ է հաստատել: Այս համբավը պահպանելու համար մշակողները կցանկանային իմանալ Python-ում ձեր հայտնաբերած բոլոր թերությունների մասին:

Երբեմն կարող է ավելի արագ լինել ինքներդ շտկել սխալները և տեղադրել Python-ին պատչեր, քանի որ այն հեշտացնում է գործընթացը և ներառում է ավելի քիչ մարդկանց: Իմացեք, թե ինչպես աջակցել.

Փաստաթղթերի սխալներ

Եթե ​​այս փաստաթղթերում վրիպակ եք գտնում կամ ցանկանում եք բարելավում առաջարկել, խնդրում ենք ներկայացնել վրիպակի մասին հաշվետվություն բուքսիր. Եթե ​​ունեք առաջարկ, թե ինչպես դա շտկել, ներառեք նաև դա:

Եթե ​​ժամանակի քիչ եք, կարող եք նաև էլեկտրոնային փոստով ուղարկել փաստաթղթերի վրիպակների մասին հաշվետվություններ [էլեկտրոնային փոստով պաշտպանված] (վարքային սխալները կարող են ուղարկվել [էլեկտրոնային փոստով պաշտպանված]) '[էլեկտրոնային փոստով պաշտպանված]' փոստային ցուցակ է, որը վարում են կամավորները. ձեր հարցումը կնկատվի, թեև դրա մշակումը կարող է որոշ ժամանակ տևել:

Տես նաեւ,

Փաստաթղթերի սխալներ

Փաստաթղթերի սխալների ցանկ, որոնք ներկայացվել են Python-ի խնդիրների հետագծողին:

Խնդիրների հետևում

Թրեքերի բարելավման մասին զեկուցման հետ կապված գործընթացի ակնարկ:

Օգնում է փաստաթղթավորման հարցում

Համապարփակ ուղեցույց այն անհատների համար, ովքեր հետաքրքրված են Python-ի փաստաթղթերում ներդրում ունենալով:

Փաստաթղթերի թարգմանություններ

Փաստաթղթերի թարգմանության համար GitHub էջերի և դրանց հիմնական կոնտակտների ցանկը:

Օգտագործելով Python-ի խնդիրների հետագծիչը

Սխալների մասին հաշվետվությունները հենց Python-ի համար պետք է ներկայացվեն Python Bug Tracker-ի միջոցով (https://bugs.python.org/): Սխալների որոնիչն առաջարկում է վեբ ձև, որը թույլ է տալիս մուտքագրել համապատասխան տեղեկատվություն և ներկայացնել մշակողներին:

Հաշվետվություն ներկայացնելու առաջին քայլը պարզելն է, թե արդյոք խնդիրն արդեն զեկուցվել է: Դա անելու առավելությունը, բացի մշակողների ժամանակ խնայելուց, այն է, որ դուք սովորում եք, թե ինչ է արվել այն շտկելու համար. կարող է լինել, որ խնդիրն արդեն շտկվել է հաջորդ թողարկման համար, կամ անհրաժեշտ է լրացուցիչ տեղեկատվություն (այս դեպքում կարող եք տրամադրել այն, եթե կարող եք): Դա անելու համար որոնեք սխալների տվյալների բազան՝ օգտագործելով էջի վերևի որոնման դաշտը:

Եթե ​​ձեր հաղորդած խնդիրն արդեն չկա վրիպակների հետագծում, վերադարձեք Python Bug Tracker և մուտք գործեք: OpenID մատակարարի լոգոներից մեկը կողագոտում: Անանուն սխալի մասին հաշվետվություն ներկայացնել հնարավոր չէ:

Այժմ մուտք գործելով՝ կարող եք վրիպակ ներկայացնել: Սխալների հաշվետվության ձևը բացելու համար ընտրեք «Ստեղծել նոր» հղումը կողագոտում:

Ներկայացման ձևն ունի մի շարք դաշտեր: «Վերնագիր» դաշտի համար մուտքագրեք a շատ խնդրի կարճ նկարագրություն; տասը բառից պակաս լավ է: «Տեսակ» դաշտում ընտրեք ձեր խնդրի տեսակը. ընտրեք նաև «Բաղադրիչը» և «Տարբերակները», որոնց վերաբերվում է սխալը:

«Մեկնաբանություն» դաշտում մանրամասն նկարագրեք խնդիրը՝ ներառյալ այն, թե ինչ եք ակնկալում, որ տեղի կունենա և ինչ է տեղի ունեցել: Համոզվեք, որ ներառեք, թե արդյոք ընդլայնման մոդուլներ ներգրավված են եղել, և թե ինչ ապարատային և ծրագրային հարթակ եք օգտագործում (ներառյալ տարբերակի մասին տեղեկությունները, ըստ անհրաժեշտության):

Սխալների յուրաքանչյուր հաշվետվություն կհատկացվի մշակողին, ով կորոշի, թե ինչ պետք է արվի խնդիրը շտկելու համար: Դուք թարմացում կստանաք ամեն անգամ, երբ վրիպակի դեմ գործողություն կատարվի:

Տես նաեւ,

Ինչպես արդյունավետ կերպով հաղորդել սխալների մասին

Հոդված, որը մանրամասնում է, թե ինչպես ստեղծել օգտակար վրիպակի հաշվետվություն: Սա նկարագրում է, թե ինչպիսի տեղեկատվություն է օգտակար և ինչու է այն օգտակար:

Սխալներ գրելու ուղեցույցներ

Տեղեկություններ սխալի մասին լավ հաշվետվություն գրելու մասին: Դրանցից մի քանիսը հատուկ են Mozilla նախագծին, բայց նկարագրում են ընդհանուր լավ փորձը:

Ինքներդ սկսել եք նպաստել Python-ին

Բացի ձեր հայտնաբերած սխալների մասին զեկուցելուց, դուք կարող եք նաև ուղարկել կարկատներ՝ դրանք շտկելու համար: Դուք կարող եք ավելի շատ տեղեկություններ գտնել այն մասին, թե ինչպես սկսել Python-ի կարկատումը Python-ի մշակողների ուղեցույց. Եթե ​​ունեք հարցեր, ապա հիմնական մենթորության փոստային ցուցակը բարեկամական վայր է Python-ում խնդիրների շտկման գործընթացին վերաբերող ցանկացած և բոլոր հարցերի պատասխանները ստանալու համար:

W3-ից

NumPy- ն Խնամակալական

  1. NumPy ՏՈՒՆ
  2. NumPy ներածություն
  3. NumPy Սկսել
  4. NumPy զանգվածների ստեղծում
  5. NumPy զանգվածի ինդեքսավորում
  6. NumPy Array Slicing
  7. NumPy տվյալների տեսակները
  8. NumPy Copy vs View
  9. NumPy զանգվածի ձև
  10. NumPy զանգվածի վերափոխում
  11. NumPy զանգվածի կրկնում
  12. NumPy Array Միացեք
  13. NumPy Array Split
  14. NumPy զանգվածի որոնում
  15. NumPy զանգվածի տեսակավորում
  16. NumPy Array զտիչ

NumPy- ն պատահական

  1. Պատահական ներածություն
  2. Տվյալների բաշխում
  3. Պատահական փոխակերպում
  4. Seaborn մոդուլ
  5. Նորմալ բաշխում
  6. Երկանդամ բաշխում
  7. Պուասոնի բաշխում
  8. Միատեսակ բաշխում
  9. Լոգիստիկ բաշխում
  10. Բազմանդամ բաշխում
  11. Էքսպոնենցիալ բաշխում
  12. Չի հրապարակի բաշխում
  13. Ռեյլի բաշխում
  14. Պարետո բաշխում
  15. Zipf բաշխում

NumPy- ն ufunc

  1. fununc Ներածություն
  2. ufunc Ստեղծել գործառույթ
  3. ufunc Պարզ թվաբանություն
  4. ufunc Կլորացվող տասնորդական թվեր
  5. ufunc տեղեկամատյաններ
  6. ufunc գումարումներ
  7. ufunc Ապրանքներ
  8. ufunc Տարբերությունները
  9. ufunc Գտնելով LCM
  10. ufunc Գտնելով GCD
  11. ufunc Եռանկյունաչափական
  12. ufunc Հիպերբոլիկ
  13. ufunc Set Operations

Վիկտորինա/վարժություններ

  1. NumPy վիկտորինան
  2. NumPy վարժություններ
  3. NumPy վկայագիր
Թարգմանություն »