eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingLambda w Pythonie › Lambda w Pythonie
  • 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!border2.nntp.ams1.gi
    ganews.com!nntp.giganews.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl
    !unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
    Newsgroups: pl.comp.programming
    X-Mozilla-News-Host: news://news.nask.pl:119
    From: Roman Tyczka <r...@h...you.spammer>
    Subject: Lambda w Pythonie
    Date: Wed, 17 Feb 2021 15:13:31 +0100
    User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
    Thunderbird/78.7.1
    MIME-Version: 1.0
    Content-Type: text/plain; charset=utf-8; format=flowed
    Content-Language: pl-PL
    Content-Transfer-Encoding: 8bit
    Lines: 39
    Message-ID: <602d248b$0$555$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 194.49.104.179
    X-Trace: 1613571211 unt-rea-a-02.news.neostrada.pl 555 194.49.104.179:33224
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.comp.programming:215376
    [ ukryj nagłówki ]


    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

    #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)

    Niestety, zmienna ctr zamiast lambdy otrzymuje od razu tablicę bajtów
    :-( Co robię źle?

    --
    pzdr
    Roman

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: