använda egen funktion i modul i Python, problem! [LÖST]

Här diskuteras programmering och utveckling
Användarvisningsbild
ZerQ
Inlägg: 160
Blev medlem: 01 aug 2007, 08:40
OS: Annat GNU/Linux
Ort: Ornsköldsvik
Kontakt:

använda egen funktion i modul i Python, problem! [LÖST]

Inlägg av ZerQ »

Hejsan

Jag har provat att skapa en modul vars enda funktion skall beräkna och skriva ut hur många dagar, timmar, minuter och sekunder det blir av ett givet antal sekunder. Funktionen i sig själv fungerar perfekt men det verkar som om anropet till denna funktion inte fungerar för den skriver bara ut nollor på alla 4 variabler som finns i funktionen.

Anropet ser ut som följande i huvudprogrammet:

Kod: Markera allt

import timekonvert
inSek = 90061

timekonvert.sekundTillDag(inSek)
Och funktionen ser ut som följande i modulen:

Kod: Markera allt

# Definition och tilldelning av variabler och konstanter (globala)
DAG = 86400
TIM = 3600
MIN = 60


# Funktionsblock för modulen
##############################################################
def sekundTillDag(inSek): # Funktion som uför omvandling från sekunder till dagar...
    # Definition och deklarering av lokala variabler
    dagar = 0
    timmar = 0
    minuter = 0
    sekunder = 0
    
    # Utför beräkningen och tilldela svaret till varje lokal variabel
    dagar = inSek / DAG
    timmar = (inSek % DAG) / TIM
    minuter = (inSek - (dagar * DAG + timmar * TIM)) / MIN
    sekunder = inSek - (dagar * DAG + timmar * TIM + minuter * MIN)
    
    # Skriv ut svaret och återvänd till anropande funktion
    print dagar, "dagar, ", timmar, "timmar, ", minuter, "minuter, ", sekunder, "sekunder.\n"
Men som sagt det verkar inte som att variabeln inSek i anropet ifrån huvudprogrammet får med sig något värde, vad har jag gjort fel någonstans?
Senast redigerad av 1 ZerQ, redigerad totalt 24 gånger.
Användarvisningsbild
gasol
Inlägg: 405
Blev medlem: 27 jul 2007, 14:57
Kontakt:

Re: använda egen funktion i modul i Python, problem!

Inlägg av gasol »

Funkar för mig...

Kod: Markera allt

>>> import a
>>> a.sekundTillDag(499999)
5 dagar,  18 timmar,  53 minuter,  19 sekunder.
The Black Mountain Scorpion Hoedown Bluegrass Experience Gang
From Left to Right: Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle.
Användarvisningsbild
ZerQ
Inlägg: 160
Blev medlem: 01 aug 2007, 08:40
OS: Annat GNU/Linux
Ort: Ornsköldsvik
Kontakt:

Re: använda egen funktion i modul i Python, problem!

Inlägg av ZerQ »

mm, För mig också nu. Jag stängde av datorn och när jag nästa gång skulle testa programmet så fungerade det. Har provat vidare och tydligen tycker inte Python IDLE att den kan använda förändringar gjorda i programmet direkt, jag måste starta om programmet varje gång...

Men tack för hjälpen iaf ändå.
Jakob.Pogulis
Inlägg: 3
Blev medlem: 30 sep 2008, 13:36
OS: Crunchbang

Re: använda egen funktion i modul i Python, problem! [LÖST]

Inlägg av Jakob.Pogulis »

Du måste använda reload(timekonvert) istället för import timekonvert om du vill ladda om modulen mer än en gång.
Skriv svar

Återgå till "Programmering och webbdesign"