Portál AbcLinuxu, 12. května 2025 02:53

Dotaz: python args kwargs jineho typu

11.8.2011 22:27 H.
python args kwargs jineho typu
Přečteno: 366×
Odpovědět | Admin
Zdravim, da se nejak zaridit, aby *args, resp **kwargs, byly jineho typu nez list, resp. dict? Bez nutnosti delat to manualne vevnitr funkce. Predstavuju si nejaky magicky decorator, ktery by to zaridil. Je to mozne?
class MyList(list):
    pass

class MyDict(dict):
    pass

@do_magic(args_cls=MyList, kwargs_cls=MyDict)
def fn(*args, **kwargs):
    assert args.__class__ == MyList
    assert kwargs.__class__ == MyDict
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

11.8.2011 22:52 wr
Rozbalit Rozbalit vše Re: python args kwargs jineho typu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tady asi ta možnost není, protože *args a **kwargs obecně zastupují parametry funkce. Musel by jsi jedině překompilovat zdrojáky Pythonu a vytvořit objekt který má stejné API pro list popř. dict.
11.8.2011 23:03 H.
Rozbalit Rozbalit vše Re: python args kwargs jineho typu
Mozna by to nekdo zvladl s byteplay?
11.8.2011 23:12 H.
Rozbalit Rozbalit vše Re: python args kwargs jineho typu
Ze by ve skutecnosti probehla prirazeni args = args_cls(args) a to same pro kwargs. Tento kod by byl vlozen dekoratorem dovnitr funkce.
11.8.2011 23:18 chrono
Rozbalit Rozbalit vše Re: python args kwargs jineho typu
Jediné čo si viem predstaviť je to, že ten dekorátor by ti tam pridal dva (pomenované) parametre, v ktorých by si mal pôvodné args a kwargs.

PS: Na čo to má vlastne slúžiť?
11.8.2011 23:21 H.
Rozbalit Rozbalit vše Re: python args kwargs jineho typu
Celkem k nicemu, jen me to napadlo.. Oblibil jsem si subclassing buildin typu, tak je cpu vsude :-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.