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: csiph.com!xmission!news.snarked.org!border2.nntp.dca1.giganews.com!nntp.giganews.com!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 Injection-Date: Wed, 30 Jun 2021 14:49:47 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Lines: 38 Xref: csiph.com pl.comp.programming:34495 =C5=9Broda, 30 czerwca 2021 o=C2=A015:36:51 UTC+2 Roman Tyczka napisa=C5=82= (a): > A co konkretnie robi ten zapis: > def name(self) -> str:=20 > """=20 > A string naming this mode (e.g. "ECB", "CBC").=20 > """ > Jak go czyta=C4=87, co wykonuje?=20 Pierwsza linijka, z tego, co pami=C4=99tam, to rzadko u=C5=BCywane w python= ie (je=C5=9Bli nie kombinujemy z numPy, PyPy, tudzie=C5=BC interfejsami do = bibliotek napisanych w C/C++) rozszerzenie maj=C4=85ce wymusza=C4=87 string= -type na wyj=C5=9Bciu funkcji "name()" - nie wiem jak i kiedy dzia=C5=82a, = bo sam nigdy nie u=C5=BCywa=C5=82em. Reszta to klasyczny help/komentarz do funkcji wy=C5=9Bwietlany po wywo=C5= =82aniu np "help(Mode.name)" b=C4=85d=C5=BA "ECB.name.__doc__". Du=C5=BCo bardziej tutaj istotna jest linia: - - - - -=20 @abc.abstractproperty - - - - -=20 nad "def name...", ale to jest w=C5=82a=C5=9Bnie cz=C4=99=C5=9B=C4=87 meta-= programingu - tematyka szeroka i dosy=C4=87 mocno abstrakcyjna. Chyba musia= =C5=82bym si=C4=99 pobawi=C4=87 kodem =C5=BCeby samemu wyczai=C4=87 o co ko= nkretnie chodzi. Tak na szybkiego zajrza=C5=82em w pakiet (np. plik "main/src/cryptography/h= azmat/backends/openssl/backend.py" daje pewien og=C3=B3lny zarys) i wygl=C4= =85da na to, =C5=BCe powodem u=C5=BCycia meta-programmingu jest nie r=C3=B3= =C5=BCnorodno=C5=9B=C4=87 =C5=9Brodowisk (jak napisa=C5=82em), ale sama ide= a algorytmu: parser sk=C5=82adaj=C4=85cy/odczytuj=C4=85cy poszczeg=C3=B3lne= pola na interfejsie (ASN1). To mi wystarczy =C5=BCeby nie w=C5=82azi=C4=87= g=C5=82=C4=99biej - rozczajanie kodu zazwyczaj bywa bardziej czasoch=C5= =82onne ni=C5=BC jego pisanie. ;) ---=20 pzdr, Vlad P