Jag är också en grinig gammal gubbe och har ibland svårt att imponeras över nya språk/ramverk, men just Python hade jag väldigt lätt att ta till mig - kanske just för att jag _hade_ C/C++ i bagaget
Och, jag hackar fortfarande C/C++, det ena utesluter ju inte det andra, vart språk är bra på sitt (utom Php som suger på allt)
Jag tackar johano för en väl fungerande lösning på mitt problem.
Men, det gör lite ont att variablerna är åtkomliga från kod utanför funktionen. Jag trodde jag skulle vänja mig men jag är troligen alltför präglad av mitt liv med C.
Finns det något som beter sig mer som en static i C? Dvs, behåller värdet mellan anrop av funktionen, osynlig utanför funktionen och gärna garanterat ha ett visst värde vid start.
Jag är också en grinig gubbe som gärna kodar 8-bitars assembler, eller skriver VHDL för den delen, eller ritar kisel för hand, men faktum är att Python ger en sådan särdeles hävstång att det är synd att inte ta del av det.
För mig känns det naturligt att ha en statemachine som ett objekt innehållande state och metoder för att manupulera statet mm. Kanske en grund:
Ja VHDL var kul men det var länge sedan. Vi gjorde en bunt VME-kort med FPGA på för signalbehandling i slutet av åttiotalet och början av nittiotalet. Ett kort var speciellt minnesvärt, footprinten i CAD-systemet stämde väldigt dåligt med kretsen. Jag minns inte om det var kretsen eller footprinten som hade pinne 1 i hörnet men den andra mitt på ena sidan. Stackarn som caddade skämdes som en hund.
Tyvärr har jag inte lyckats passera tröskeln i Python, jag minns hur det var när jag passerade tröskeln i C, det var en underbar känsla. Samma med tröskeln i FORTH men där har jag halkat tillbaks till nybörjarstadiet eftersom "ingen" är intresserad av FORTH och det därmed är en ganska kass födkrok. C och assembler däremot verkar ha kommersiell potential. Och Python. Och en massa annan xxxxxx.
Din klass för en statemaskin är elegant men den saknar egenskapen att ha privata variabler. Visst, jag kanske är både nojig och fånig men jag gillar konceptet med privata variabler.
Din klass för en statemaskin är elegant men den saknar egenskapen att ha privata variabler. Visst, jag kanske är både nojig och fånig men jag gillar konceptet med privata variabler.
Ingenting är privat i Python. Det är bra och dåligt.
Nä nu tar du väl ändå i Men min reaktion var liknande när jag insåg detta. Jag kan inte prata mig ur det, för det är en härlig känsla att isolera saker från varandra, men erfarenhetsmässigt har det visat sig att det är direkt ovanligt att det går snett på grund av bristande isolation. För mig och de projekt jag jobbat med.
En sak du kan göra är att låta alla privata saker ha ett namn som börjar med två underscore, tex "__val". Python låter dig inte accessa "x.__val", till exempel. (Men det finns andra sätt att få ut värdet om man vill, så riktigt privat är det inte.)