🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #217427

Re: Python i klasy oraz dawka magii czyli niezrozumienie

#217427
From: Piotr Wladyka
Date: Wed, 30 Jun 2021 14:49
23 lines
2801 bytes
ś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/backend.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
Technical Details
Message-ID: <9f7f977b-4de8-4e1b-8a48-2f6b1ef4e09fn@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
References: <603f79a0$0$514$65785112@news.neostrada.pl> <3678d395-cb91-455a-86f1-996ce9daab84n@googlegroups.com> <60dc7353$0$547$65785112@news.neostrada.pl>

Show Full Headers
Complete Article Headers
X-Received: by 2002:a37:9e46:: with SMTP id h67mr32826856qke.439.1625064587964;        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: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.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> <3678d395-cb91-455a-86f1-996ce9daab84n@googlegroups.com> <60dc7353$0$547$65785112@news.neostrada.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <9f7f977b-4de8-4e1b-8a48-2f6b1ef4e09fn@googlegroups.com>
Subject: Re: Python i klasy oraz dawka magii czyli niezrozumienie
From: Piotr Wladyka <piotr.wladyka@gmail.com>
Injection-Date: Wed, 30 Jun 2021 14:49:47 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit