Välkommen till linuxportalen.se!

Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.

Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!

Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!

Bra pythonkod?

Skrev en fuktion för att läsa in en konfigurationsfil och fick kort och kompaktkod, men blev den bra?

self.destdir = f.readline().strip().split('=')[1]

Koden ovan fungerar och gör vad den ska läser den in "destdir=/dokument" så blir self.destdir /dokument som förväntat. Är det rekomenderat att skriva python kod så här eller borde man skriva

tmp = f.readline().strip().split('=')
self.destdir = tmp[1]

Eller ska man göra sig besväret att bryta ner koden än mer?

//Fredrik

Alternativ för kommentarvisning

Välj ditt önskade sätt att visa kommentarerna och klicka på "Spara" för att verkställa dina ändringar.

noxxiks bild

Fungerar det, så fungerar det. Dock är det ju ändå för ens egen inlärnings skull bra att veta hur man egentligen gör. Jag tycker nog att det är värt besväret att bryta ned koden i mindre delar. På så vis kan du ju sedan unyttja denna kodrad i andra delar av koden, där du vill göra samma sak.

jeffs bild

Jag är inte pythonprogrammerare (om vi bortser från att jag skriver i det på jobbet) men jag tycker inte det finns någon anledning att bryta ner fungerande kod. Det blir bara splittrat. Den egna inlärningen får nog mer plus om du faktiskt måste tänka efter vad du gör, istället för att katten pejsta små kodrader från andra delar av din app,

______________________________________

------

noxxiks bild

Förvisso. Men det jag tänkte på var mer med att jobba med klasser och liknande.

Kristians bild

Om du behöver skapa en variabel "tmp" så saknar du en funktion. Behöver du använda uttrycket flera gånger så saknar du en klass (eller möjligen en closure). För icke-triviala program kan jag bara säga ...

http://www.youtube.com/watch?v=wEhu57pih5w

---------------------------------------

Varje ny generation får en så kall och bitter ton efter en tid och det är bara de under tio som förstår hur man ska leva ett värdigt liv

---------------------------------------

 

noxxiks bild

Ja obviously!
Inget nytt under solen där inte Cool

Kristians bild

Misko Hevery har ytterligare några föredrag som är väl värda att se

http://www.youtube.com/watch?v=-FRm3VPhseI&feature=channel

http://www.youtube.com/watch?v=RlfLCWKxHJ0&feature=channel

---------------------------------------

Varje ny generation får en så kall och bitter ton efter en tid och det är bara de under tio som förstår hur man ska leva ett värdigt liv

---------------------------------------

 

fredrikperssons bild

Bor du på youtube eller?

//Fredrik Persson

 

//Fredrik Persson

Kristians bild

Ja, jag bor på "google techtalk"-kanalen på youtube. Andra (inte du) bor på LP eller idg.se och tillbringar hela kvällar i eviga debatter kring distar, Microsoft vs Godzilla och hurvida en varmkorv ska njutas med eller utan bostongurka. Det sista kan jag iof känna viss sympati för eftersom bostongurka är ett ädelt tillbehör till all form av grillmat.

---------------------------------------

Varje ny generation får en så kall och bitter ton efter en tid och det är bara de under tio som förstår hur man ska leva ett värdigt liv

---------------------------------------

 

jonasbjorks bild

instämmer. bostongurka is the king! blandar den ibland med majonäs för ännu lyxigare måltid Wink

--
Failure is not an option. It comes bundled with your windows installation.

--
Jag är grundare av och administratör på Linuxportalen. Kontakta mig om du har frågor, funderingar eller synpunkter kring Linuxportalen.se .

jeffs bild

Om inte annat har nog även du ett par rss-strömmar som dumpar ner alltifrån lolcats till intressanta TEDtalks, yt-videor och dylikt, no? Det är inte svårt att hitta information på internet.

______________________________________

<

------

jonasbjorks bild

hur hittar man information på nätet?

--
Failure is not an option. It comes bundled with your windows installation.

--
Jag är grundare av och administratör på Linuxportalen. Kontakta mig om du har frågor, funderingar eller synpunkter kring Linuxportalen.se .

jeffs bild

how babby is formed?

______________________________________

<

------

fredrikperssons bild

Klart att det inte finns någon direkt anledning att ändra på fungerade kod om det inte gör den lättare att återanvända. Men man vill ju inte bli lat eller dra på sig några python-skador.

//Fredrik Persson

 

//Fredrik Persson

iaidokas bild

Du kan ju alltid bryta ut det till en egen funktion som har ett bra namn. Och ha din koncisa konstruktion i funktionen.

Test.

iqgrisskinkas bild

Fungerar det så är det ju bra, om du vill få det tydligare så rekomenderar jag en kommentar (# + text)

 

Kristians bild

I min kod har jag nästan inga kommentarer alls. Om vi tar koden

tmp = sum(list) / len(list)

Så kan den förbättras enligt

mean_value = sum(list) / len(list)

och ytterligare förbättras enligt

mean_value = mean(list)

Det där sista kanske kan te sig som en onöd förtydling? Tja, vad händer om listan är tom (man får inte dividera med noll)? I ett språk som C++ skulle det här resultera i att programmet avbryts (i UNIX går det att fånga med signalhantering, men nu talar vi standard C++ oberoende av plattform). Med andra ord måste vi lägga till en kontroll ifall len(list) är 0 och om så är fallet, kasta ett undantag. Det här är trivialt ifall uttrycket finns i en enda funktion, men är knepigt ifall samma beräkning är spridd i ett större program.

Resultatet av att bryta ut även enkla uttryck är att koden blir lättare att läsa och lättare att modifiera. En medelberäkning är inte det enda fallet där något liknande kan inträffa. Det finns otaliga beräkningar som vid första anblicken tycks triviala men som vid en andra analys kräver felkontroll eller situationsbaserad hantering.

---------------------------------------

Varje ny generation får en så kall och bitter ton efter en tid och det är bara de under tio som förstår hur man ska leva ett värdigt liv

---------------------------------------

 

iqgrisskinkas bild

Jag håller med, men känner man att koden blir otydlig tycker jag att det är bättre att lägga till kommentarer än att förändra hela kod-strukturer som man kan tvingas göra om man jobbar med ett större program.