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:ac8:7dc9:: with SMTP id c9mr31759560qte.169.1625064587799; Wed,
    30 Jun 2021 07:49:47 -0700 (PDT)
    X-Received: by 2002:ac8:7dc9:: with SMTP id c9mr31759560qte.169.1625064587799; Wed,
    30 Jun 2021 07:49:47 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erj
    e.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!n
    ews-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegrou
    ps.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Wed, 30 Jun 2021 07:49:47 -0700 (PDT)
    In-Reply-To: <60dc7353$0$547$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>
    <3...@g...com>
    <60dc7353$0$547$65785112@news.neostrada.pl>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <9...@g...com>
    Subject: Re: Python i klasy oraz dawka magii czyli niezrozumienie
    From: Piotr Wladyka <p...@g...com>
    Injection-Date: Wed, 30 Jun 2021 14:49:47 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:215487
    [ ukryj nagłówki ]

    środa, 30 czerwca 2021 o 15:36:51 UTC+2 Roman Tyczka napisał(a):
    > A co konkretnie robi ten zapis:
    > def name(self) -> str:
    > """
    > A string naming this mode (e.g. "ECB", "CBC").
    > """
    > Jak go czytać, co wykonuje?

    Pierwsza linijka, z tego, co pamiętam, to rzadko używane w pythonie (jeśli nie
    kombinujemy z numPy, PyPy, tudzież interfejsami do bibliotek napisanych w C/C++)
    rozszerzenie mające wymuszać string-type na wyjściu funkcji "name()" - nie wiem jak i
    kiedy działa, bo sam nigdy nie używałem.

    Reszta to klasyczny help/komentarz do funkcji wyświetlany po wywołaniu np
    "help(Mode.name)" bądź "ECB.name.__doc__".

    Dużo bardziej tutaj istotna jest linia:
    - - - - -
    @abc.abstractproperty
    - - - - -
    nad "def name...", ale to jest właśnie część meta-programingu - tematyka szeroka i
    dosyć mocno abstrakcyjna. Chyba musiałbym się pobawić kodem żeby samemu wyczaić o co
    konkretnie chodzi.

    Tak na szybkiego zajrzałem w pakiet (np. plik
    "main/src/cryptography/hazmat/backends/openssl/backe
    nd.py" daje pewien ogólny zarys) i wygląda na to, że powodem użycia meta-programmingu
    jest nie różnorodność środowisk (jak napisałem), ale sama idea algorytmu: parser
    składający/odczytujący poszczególne pola na interfejsie (ASN1). To mi wystarczy żeby
    nie włazić głębiej - rozczajanie kodu zazwyczaj bywa bardziej czasochłonne niż jego
    pisanie. ;)

    ---
    pzdr,
    Vlad P

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

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: