-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin3!goblin1!goblin.st
u.neva.ru!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-
mail
From: Piotr Chamera <p...@p...onet.pl>
Newsgroups: pl.comp.programming
Subject: Re: Lambda w Pythonie
Date: Wed, 17 Feb 2021 16:06:58 +0100
Organization: A noiseless patient Spider
Lines: 58
Message-ID: <s0jbgg$8r9$1@dont-email.me>
References: <602d248b$0$555$65785112@news.neostrada.pl>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 17 Feb 2021 15:08:00 -0000 (UTC)
Injection-Info: reader02.eternal-september.org;
posting-host="662b49fe9d602c3e476efb87301a998d"; logging-data="9065";
mail-complaints-to="a...@e...org";
posting-account="U2FsdGVkX19Pd8ibtF1mzQeqb4fHHC4O"
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.7.0
Cancel-Lock: sha1:hlFZfkviGS9l2fbL/6h/5W3E+R8=
In-Reply-To: <602d248b$0$555$65785112@news.neostrada.pl>
Content-Language: pl
Xref: news-archive.icm.edu.pl pl.comp.programming:215377
[ ukryj nagłówki ]W dniu 2021-02-17 o 15:13, Roman Tyczka pisze:
>
> Być może źle do tego podchodzę... ale potrzebuję funkcji X(), która
> zwraca jakieś dane, tę funkcję muszę przekazać dalej i gdzieś tam w
> trzewiach biblioteki zostanie wywołana i pobrana z niej wartość.
> Problem polega na tym, że funkcja ma zwracać różne dane w zależności od
> pewnego parametru, ale samego parametru jej przekazać nie mam jak, więc
> pomyślałem, że zrobię sztuczkę z lambdą/anonymousem, czyli utworzę
> funkcję, która dostanie ten istotny parametr i zwróci lambdę już
> "spreparowaną" pod wymagania wynikające z tego parametru.
> No ale nie umiem :-(
>
> Zrobiłem tak:
>
> #funkcja generująca tablicę bajtów o określonej długości
> def getCTR(bits: int):
> k = bits // 8
> b = bytes([6])
> return b * k
Może chodziło Ci o coś takiego:
def getCTR(bits: int):
k = bits // 8
b = bytes([6])
return lambda : b * k
>>> getCTR(8)
<function getCTR.<locals>.<lambda> at 0x02C68660>
>>> f = getCTR(8)
>>> f()
b'\x06'
>>> f = getCTR(32)
>>> f()
b'\x06\x06\x06\x06'
getCTRn i getCTRx są niepotrzebne
> #typ lambdy, który korzysta z powyższej funkcji
> getCTRn = lambda x : getCTR(x)
>
> #funkcja główna, mająca zwrócić lambdę
> #spreparowaną na zwrócenie określonej wartości
> def getCTRx(bites):
> g: getCTRn = getCTRn(8 * bites)
> return g
>
> i kod właściwy, który tego wszystkiego powyżej używa:
>
> ctr = getCTRx(algModule.key_size)
> ciph = algModule.new(key, algMode, IV=iv, counter=ctr)
a wywołanie wyglądałoby tak:
ctr = getCTR(algModule.key_size)
ciph = algModule.new(key, algMode, IV=iv, counter=ctr)
Następne wpisy z tego wątku
- 17.02.21 16:44 Piotr Chamera
- 17.02.21 20:12 Roman Tyczka
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- 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??
Najnowsze wątki
- 2025-03-03 Pruszków => Specjalista ds. public relations <=
- 2025-03-03 Białystok => System Architect (Java background) <=
- 2025-03-03 Białystok => System Architect (background deweloperski w Java) <=
- 2025-03-03 China-Kraków => Senior PHP Symfony Developer <=
- 2025-03-03 China-Kraków => Senior PHP Symfony Developer <=
- 2025-03-03 Warszawa => Data Engineer (Tech Lead) <=
- 2025-03-03 Gliwice => Ekspert IT (obszar systemów sieciowych) <=
- 2025-03-03 Gliwice => IT Expert (Network Systems area) <=
- 2025-03-03 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-03-03 Warszawa => Spedytor Międzynarodowy <=
- 2025-03-03 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-03-03 Katowice => Key Account Manager (ERP) <=
- 2025-03-02 Tusk idzie na rekord deportacji po 1989 [Będzie popyt na prawników]
- 2025-03-01 Obywatel telefonuje 112 lub 986
- 2025-03-01 detektyw (?) Rutkowski działał jako prasa