-
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.
Następne wpisy z tego wątku
- 30.06.21 15:36 Roman Tyczka
- 30.06.21 16:49 Piotr Wladyka
Najnowsze wątki z tej grupy
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-15 Google Play
- 2024-11-15 Szybcy i wściekli
- 2024-11-16 Opis produktu z Aliexpress
- 2024-11-15 No proszę, a śmialiście się z hindusów.
- 2024-11-14 Zewnętrzne napięcie referencyjne LM385 1,2V -> 100mV dla ICL7106, Metex M-3800
- 2024-11-15 ...a po nocy, przychodzi dzień...
- 2024-11-15 Warszawa => Microsoft Dynamics 365 Business Central Developer <=
- 2024-11-15 Lublin => SAP HANA Cloud Dev / Data Engineer <=
- 2024-11-15 Poznań => Dyspozytor Międzynarodowy <=
- 2024-11-15 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-15 Kraków => Head of International Freight Forwarding Department <=
- 2024-11-15 Kraków => Key Account Manager <=
- 2024-11-15 Warszawa => Senior iOS Developer <=
- 2024-11-15 Riga => NOC Engineer <=
- 2024-11-15 Chrzanów => Specjalista ds. public relations <=