Proměnný počet argumentů funkce – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Proměnný počet argumentů funkce – Python – Fórum – Programujte.comProměnný počet argumentů funkce – Python – Fórum – Programujte.com

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Pergoly a střechy Brno

Filip
~ Anonymní uživatel
121 příspěvků
27. 9. 2021   #1
-
0
-

Ahoj. Řeším teď takový menší problém. Mám zadanou funkci, která má 5 key word argumentů. Právě podle toho, které argumenty byly zadány, bude probíhat vyhledávání v "databázi".

Například mám databázi o 5 atributech a budu volat funkci search takto:

search(name="Adam", address="Praha") nebo

search(name="Adam", address="Praha", age=28, gender="M") 

Mám zadané, že se tato funkce bude volat právě takto a zároveň potřebuji, aby se podle zadaných key word argumentů provedlo vyhledávání a mohla se zavolat další funkce, která převezme tyto argumenty. Nicméně mě bohužel nenapadá, jak bych to udělal. Mohl by mi prosím někdo poradit? Díky

Nahlásit jako SPAM
IP: 31.30.172.–
gna
~ Anonymní uživatel
1498 příspěvků
27. 9. 2021   #2
-
0
-

Při definici funkce jde definovat výchozí hodnoty parametrů. Takové parametry pak není potřeba uvádět a v tom případě budou mít tu výchozí hodnotu.

def search(name=None, age=None):
    if name is not None:
        neco s name
    if age is not None:
        neco s age

Nebo jde parametr označit dvěmi hvězdičkami a pak to bude dict se všemi (pojmenovanými a explicitně nedefinovanými) parametry:

def search(**kwargs):
    kwargs["name"]
    kwargs.get("name")
    ...
Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 15 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý