Programozás Python

Ez a tartalom része a sorozat:

Stay tuned a közelgő cikkek ebben a sorozatban.

Mi továbbra is tanulmányozza az osztályokat Python. Különleges fenntartott módszernek előtagja - kettős aláhúzás. Segítségükkel megvalósított mechanizmusok, mint például a tervezők szekvencia iterátorokat ingatlan, rések, stb

Ma megnézzük az alábbi témákban.

  1. Tárgyak az osztályok és speciális módszerek.
  2. Példányainak osztályok és speciális módszerek.
  3. Példányainak osztályok szekvenciák.
  4. Hoz tárgyak alaptípusa.
  5. Kötött és nem kötött módszerek.
  6. szuper módszer.
  7. Statikus módszerek.
  8. Bejáró.
  9. Az ingatlan.
  10. Singleton.
  11. Slots.
  12. Funktorhoz.
  13. Leíró.
  14. Sequence.

1. Az objektumok az osztályok és speciális módszerek

Az objektum osztály jön létre az osztály definíciója. Objektumosztályok a következő tulajdonságokkal rendelkezik:

__name__ - osztály neve;

__module__ - modul neve;

__dict__ - Szótár class attribútumok, akkor módosíthatja a szótárban közvetlenül;

__bases__ - tuple bázis osztályok sorrendjében előfordulásuk;

__doc__ - string osztály dokumentációt.

2. példányainak osztályok és speciális módszerek

Bíróság (például) az osztály által visszaadott hívás osztály objektum. egy osztály objektum lehet egy példányát (vagy példányok) - egy pár. Példányok a következő tulajdonságokkal rendelkezik:

__dict__ - Szótár class attribútumok, akkor módosíthatja a szótárban közvetlenül;

__class__ - osztály objektum, egy példánya, amely a példány;

__init__ - Designer. Ha a szülő osztály van konstruktora, a származtatott osztály konstruktora kell nevezni;

__del__ - destructor. Ha a szülő osztály van destrukor származtatott osztály destructor kell nevezni;

__cmp__ - szólított fel minden összehasonlítást;

__hash__ - visszaadja a hash érték az objektum, egyenlő a 32-bites szám;

__getattr__ - visszaadja a tulajdonság, amely nem a szokásos módon;

__setattr__ - hozzárendeli az attribútum értékét;

__delattr__ - törli attribútum;

__call__ - által kiváltott hívás példány.

3. példányainak osztályok szekvenciák

Példányainak osztályok lehet használni, hogy szimulálja szekvenciák. Egy ilyen megvalósítás a beépített módszerek:

__len__ - visszaadja a szekvencia hossza;

__getitem__ - fogadó az index vagy a kulcsfontosságú eleme;

__setitem__ - hozzárendelés elemet ami az adott kulcsot vagy indexet;

__delitem__ - eltávolítjuk a elemet ami az adott kulcsot vagy indexet;

__getslice__ - visszaad egy beágyazott szekvenciát;

__setslice__ - helyettesíti a beágyazott szekvenciát;

__delslice__ - eltávolítja a beágyazott szekvenciát;

__contains__ - végrehajtja szereplő.

4. Hoz objektumokat az alaptípus

Osztály tárgyak vezethet egy string vagy numerikus típusú.

__repr__ - hivatalos visszatér a húr az objektumot reprezentálja;

__str__ - visszaadja egy karakterlánc az objektumot reprezentálja;

__oct__. __hex__. __complex__. __int__. __long__. __float__ - Visszaadja egy karakterlánc ábrázolása a megfelelő jelöléssel.

5. kötött és nem kötött módszerek

Vegyünk egy konkrét példát. Van egy alap osztályt Cat, és már nyert az osztályban Barsik:

Egy példányának létrehozása a származtatott osztály:

Első pillantásra - egy furcsa hiba, mert ott éhes attribútumot az alap osztály. Tény, hogy a származtatott osztály konstruktora - túlterhelt, az alap osztály konstruktora nem hívják, és kifejezetten meg kell hívni. Ezt meg lehet tenni két módon. Az első lehetőség elavult:

6. A módszer a szuper

A második lehetőség: a program elején meg kell határozni a metaclass. ami azt jelzi, hogy az osztály végre az úgynevezett új stílus - új stílus. Akkor meg kell hívni egy standard módszerrel szuper bázis tervező:

7. Statikus Módszerek

Statikus módszer - függvény kívül az osztály, és nincs önálló attribútum:

A statikus módszer is definiálható egy osztályon belül - erre a kulcsszóra alkalmazzuk staticmethod. ahol az eljárás lehet okozott mind statikus, mind a példány:

Osztály módszerek meghatározása a kulcsszó classmethod - python automatikusan vezetjük, mint az első paraméter az osztály önmagában (CLS):

8. A bejáró

Iterátorokat jók ahol listák nem alkalmasak annak a ténynek köszönhető, hogy vegye fel a sok memóriát használ, és a bejáró visszaadja az adott értéket. Az osztályban meg kell határozni két szabványos módszerek - __iter__ és a következő. __iter__ módszer visszatér egy objektumot át a következő módszerrel:

Egy bejáró lehet alakítani egy listát:

9. Az ingatlan

Az ingatlan - Class attribútum visszaadott segítségével a szabványos funkció tulajdonság, ami veszi érvek az egyéb funkciók az osztály:

10. Singleton

Ez a minta lehetővé teszi, hogy csak az egyik esetben egy osztály. A módszer __new__:

Slots - tulajdonságok egy listája, a fejlécben megadott az osztály a __slots__. Abban az esetben, hozzárendelni kívánt attribútum használata előtt:

12. A funktor

Funktorhoz - egy osztály, amely __call__ módszer - ebben az esetben a tárgy lehet nevezni függvényében.

Példa. Tegyük fel, hogy van egy személy osztály egy gyűjteménye tárgyak e osztály- emberek, meg kell rendezni ezt a gyűjtemény a családi nevek. Használhatja Sortkey funktorhoz:

13. Handle

Leíró - egy osztály, amely tárolja és ellenőrzi az attribútumok más osztályokba. Általában bármely osztályt, amely megvalósítja az egyik különleges módszerek - __get__. __set__. __delete__. Ez a leíró.

Ebben az esetben az osztály Point saját attribútumokat x, y, bár az okok, mintha azok - sőt, ezek tárolják a leíró ExternalStorage.

14. Sequence

A szekvencia alkalmazásával hajtják végre __getitem__ módszerekkel. __setitem__. Ebben a példában MySequence osztály visszatér az index a szekvencia meghatározatlan hosszúságú, amely a számtani progresszió a formában: 1 3 5 7 Itt lehetetlen alkalmazni a standard módszerek __del__. __len__:

következtetés

Ma megtudtuk, hogy az osztályokat python van egy nagy sor beépített módszereit és attribútumok, amelyek lehetővé teszik a rugalmas használata a modell az objektum-orientált programozás és egyszerűsíti a megoldás a szokásos problémák és algoritmusok. A módszerek lehetnek statikus jellegű, attól függően, hogy az objektum, amely lehetővé teszi a keverést az objektum-orientált és funkcionális felépítése. Hívás alap osztály módszerek saját szemantikája. Mapy szekvencia és végrehajtani alapján iterátorok mentse erőforrások és a memóriát. Az ingatlan egyszerűsítése komplex megvalósítása az osztály attribútumok. Funktorok kezelt objektumok gyűjteménye a felhasználó által megadott típus, mintha ez a hagyományos típusokhoz. -Leírások végre a különböző tárolási logika az osztály attribútumok. A folytatása a ciklus fogunk beszélni dolgozik a fájlrendszer Python eszközöket.

mintakódot ellenőrzik a változata Python 2.6.

Letölthető Resources

Kapcsolódó cikkek