eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPython i klasy oraz dawka magii czyli niezrozumienie › Re: Python i klasy oraz dawka magii czyli niezrozumienie
  • X-Received: by 2002:aed:2064:: with SMTP id 91mr31833882qta.318.1625058285436; Wed,
    30 Jun 2021 06:04:45 -0700 (PDT)
    X-Received: by 2002:aed:2064:: with SMTP id 91mr31833882qta.318.1625058285436; Wed,
    30 Jun 2021 06:04:45 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
    e.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2
    .proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnew
    s.google.com!google-groups.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Wed, 30 Jun 2021 06:04:45 -0700 (PDT)
    In-Reply-To: <603f79a0$0$514$65785112@news.neostrada.pl>
    Injection-Info: google-groups.googlegroups.com;
    posting-host=2a02:a31a:a042:2c80:466d:57ff:fea3:3dd7;
    posting-account=M3tVVAkAAAB2-Rch_oMIXei0hytn9P48
    NNTP-Posting-Host: 2a02:a31a:a042:2c80:466d:57ff:fea3:3dd7
    References: <603f79a0$0$514$65785112@news.neostrada.pl>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <3...@g...com>
    Subject: Re: Python i klasy oraz dawka magii czyli niezrozumienie
    From: Piotr Wladyka <p...@g...com>
    Injection-Date: Wed, 30 Jun 2021 13:04:45 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:215485
    [ ukryj nagłówki ]

    środa, 3 marca 2021 o 12:58:08 UTC+1 Roman Tyczka napisał(a):

    [ - CIACH - ]

    > Ale nie mogę pojąć jak to jest zrobione od strony języka, bo gdy patrzę
    > na klasy trybów to niektóre się niczym nie różnią, a wynik ich użycia
    > daje inne efekty, np. takie trzy tryby OFB, CFB i CFB8:
    >
    > class OFB(Mode, ModeWithInitializationVector):
    > name = "OFB"

    [ - CIACH - ]

    > Poza polem "name" każda klasa jest identyczna, a jednak wynik jest inny.
    > Jak to działa?


    Odpowiedź masz na samym początku:

    - - - - - - -
    import abc
    import typing

    from cryptography import utils
    from cryptography.hazmat.primitives._cipheralgorithm import CipherAlgorithm


    class Mode(metaclass=abc.ABCMeta):
    @abc.abstractproperty
    def name(self) -> str:
    """
    A string naming this mode (e.g. "ECB", "CBC").
    """
    - - - - - - -

    Autor używa mata-klas, prawdopodobnie dlatego, że pakiet jest napisany dla różnych
    wersji pythona (CPython, PyPy, Py+Rust), więc rzeczywista implementacja algorytmu
    siedzi głębiej (wybór "kawałków kodu do późniejszego użycia" odbywa się jeszcze na
    poziomie instalacji modułu - pip, ... etc) , a właśnie zmienna "Mode.name" służy do
    wyboju już konkretnej metody spośród "dostępnych dla tego środowiska".
    ---
    pzdr,
    Vlad P.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: