-
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
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- 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
Najnowsze wątki
- 2025-05-15 Nowy rodzaj zagrożenie ze strony elektryków :)
- 2025-05-15 Bus inpostu, przemycający ludzi, walnął w nocy w tira zaparkowanego na autostradzie 5 ofiar
- 2025-05-15 Alert RCB w sprawie dziewczynki
- 2025-05-15 Kurierski bus przemycał ludzi i zasnął nad ranem za kierownicą.
- 2025-05-15 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-05-14 Tsue i smsy
- 2025-05-14 Biedna kobieta jechała samochodem na targ aby sprzedać klamoty i dostała 300 zł mandatu
- 2025-05-14 hot spot traci connected device
- 2025-05-14 John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- 2025-05-14 John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- 2025-05-14 Wariant rumuński
- 2025-05-14 Rolnicy protestują w Szczecinie
- 2025-05-14 Rolnicy protestują w Szczecinie
- 2025-05-14 Rolnicy protestują w Szczecinie
- 2025-05-14 Niemcy: Przychody ze sprzedaży produktów Fairtrade w 2024r. wzrosły o rekordowe 13% do 2,9GEUR