-
Data: 2021-02-17 16:44:41
Temat: Re: Lambda w Pythonie
Od: Piotr Chamera <p...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2021-02-17 o 16:06, Piotr Chamera pisze:
> 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)
A może getCTRx powinno zwrócić lambdę
def getCTRx(bites):
g: getCTRn = getCTRn(8 * bites)
return lambda : g
wtedy cały Twój przykład działa tak jak poprzednio, tzn zwraca taką samą
tablicę, tylko przez funkcję a nie bezpośrednio...
Następne wpisy z tego wątku
- 17.02.21 20:12 Roman Tyczka
Najnowsze wątki z tej grupy
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- 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
Najnowsze wątki
- 2025-04-30 Szczecin => Key Account Manager IT <=
- 2025-04-30 Chiny => Koordynator Produkcji / Przedstawiciel ds. rozwoju produktu <
- 2025-04-30 Wrocław => Konsultant wdrożeniowy Comarch XL (Logistyka, WMS, Produk
- 2025-04-29 Nożownik zaatakował i zabił lekarza
- 2025-04-29 Polecam żarówki Blackout na Blackout z dużym gwintem
- 2025-04-29 Porażka kasty sędziowskiej przed Trybunałem Sprawiedliwości UE
- 2025-04-29 Kombinacja znaków A11 i B33?
- 2025-04-29 Na jakim etapie jest sprawa karna "gaśnicowego" Brauna z grudnia 2023?
- 2025-04-29 TSUE jest "przeciw a nawet za" neosędziami :-)
- 2025-04-29 Wrocław => Konsultant wdrożeniowy (systemy kontrolingowe) <=
- 2025-04-29 China => Production Coordinator / Representant Product Dev <=
- 2025-04-29 Warszawa => Specjalista rekrutacji IT <=
- 2025-04-28 Hiszpania bez pradu
- 2025-04-28 chinska stal
- 2025-04-28 QR kody