Já myslím, že výchozí chování a parametry snad není nutné psát. To bych je mohl psát všude a jsou widgety, kde jsou těch parametrů kotle. Naopak psát výchozí věci všude mi přijde jako "zbytečné zesložiťování kódu".
Většina knihoven je postavena tak, že nepovinné parametry jsou možnost a ne nutnost.
1) Přeplněný autobus nechávám ujet ;-)
2) Ovšem ani jí to neškodí
No pánové, diskutujete na zajímavé téma, ale na špatném příkladě. Já osobně strhávám za konstrukce typu "IF podmínka THEN RETURN TRUE ELSE RETURN FALSE" docela dost bodů.
Jinak řečeno, mělo tam být něco jako:
def pokus_o_zavreni_okna(self, widget, event):
return not self.smi_skoncit
A máte pravdu, stydím se.
Při psaní jsem zkrátka myšlenkově (ona sekce, "musíme se rozhodnout") na to if myslel, toto je samozřejmě o dost elegantnější.
Jestli delas ucitele, tak si dovedu predstavit, jaka jmena ti prideluji zaci mezi sebou.
Jinymi slovy - pro tebe mozna naprosto zrejme a presne citelne "return not self.smi_skoncit" pro nekoho jineho, kdo se teprve uci programovat je desivou komplikaci a diky temto konstrukcim se tak muze pro zacka stat programovani nocni murou do konce zivota.
Sam sebe neberu jako profesionalniho programatora, ale par jazyku uz jsem za tech vice nez deset let prostridal. Temto konstrukcim se vyhybam, jako cert krizi, protoze po par dnech, kdy dannou funkci nevidim mi vzdy trva dlouho nez prijdu na to, co a v jakem pripade vlastne vracim (nedavno se mi podarilo diky tomuto rozbit docela dost kodu).
A ano je to takhle rychlejsi - ale jestli chci honit rychlost, tak zvolim jako vychozi jazyk c/c++, pokud chci prehlednost a rychlost vyvoje, pak mam Python.
PS Kolik asi casu se usetri... na ukor citelnosti.... zvlast v GUI, kde stejne cekam, nez se vubec hne mys ?
Androide, taky nesnasim, kdyz nekdo napise do jednoho radku celej CAD a udela to v read-only perlu, ale v tomhle pripade je to s tou citelnosti je to pesne na opak. Proc budovat nejaky IFy kolem jedny boolean promenny.
Ovšem je pravda, že je to trochu ná úkor přehlednosti.
Nu nic, pravdu zde mají všichni (a nejméně já :-D ), takže hlasování:
a) dopsat Else větev a nechat return True, return False
b) vrátit znegované smi_skoncit
Nebo za c) můžeš na konec prostě napsat return False, protože to else je tam zbytečné - to bych preferoval já, protože to je technika, která je univerzálnější a je to přehlednější než s else větví.
BTW zase si do toho nenech moc kecat, je to Tvůj článek. ;-)
Vzhledem k tomu, že toto nemá být o Pythonu a referenční příručka mluví o True nebo False, nespecifikoval jsem to. GTK čeká holt pravdu nebo nepravdu a ta, jak víme, může být specifikována více způsoby než jen True/False.
None je nepravda.