-
Notifications
You must be signed in to change notification settings - Fork 0
Pythonkunde
Al programmerende leer je meer van de mogelijkheden van een taal, of anders gezegd gaandeweg het programmeren zie je in dat je van een facet van de taal geen bal snapt. Dan zoek je dat uit. Deze pagina is een verzameling van die zoektocht, om te voorkomen dat hetgeen geleerd is weer zo makkelijk vervliegt.
Zie ref.
- Alles is een object
- Elk object heeft een identiteit, een type en (een) waarde.
- De identiteit van een object verandert nooit: dus aanpassen van een object na creatie is onmogelijk!
- De is() operator vergelijkt de identiteit van twee objecten met elkaar.
- De id() functie geeft de identiteit van een object in een integer waarde weer, wat ultimo overeenkomt met het geheugenadres van het object.
- Het type van een object bepaalt welke operaties het object ondersteunt. De type() functie retourneert een object type, wat zelf ook een object is. Het type van object verandert nooit.
Omdat Python amorfig is het ook heel flexibel, maar dat betekent niet dat je alles mag. Zo is het belangrijk om te weten hoe Python objecten aanmaakt. In de basis gaat dat heel makkelijk, maar als je factory patroontjes wil maken, heb je wat meer kennis nodig. Die had ik nog niet, maar al wurgende kom ik verder.
Hier wordt het process uitgelegd. Default is het simpel, maar als je iets anders wilt, staat hier uitgelegd hoe e.e.a in elkaar steekt. Er zijn twee methoden/functies belangrijk in het creatieprocess: new en init.
Uit de link kun je het volgende halen:
- new: hoef je niet te implementeren, maar als je iets als een factory-achtig patroon wil moet je dat in de new functie regelen. Reden: new retourneert doorgaans een instantie van cls (een object dus). Indien er een new methode wordt geïmplementeerd waarbij deze new methode een instantie cls teruggeeft, wordt (verderop) in het proces de init functie (alleen van de geretourneerde instantie, of ook van de baseclass?) automatisch aangeroepen. Wordt er niets retourneert, dan wordt init niet opgestart. Zeer waarschijnlijk moet je dat dan zelf ergens regelen.
- init: wordt na creatie uitgevoerd. Het object bestaat dan al. Daarom retourneert de init methode nooit iets (of hooguit None)
combinatie van het gegeven dat binnen Python de identiteit van een object niet kan veranderen, betekent dus dat je een factory patroon in de new method moet zien te verwerken, omdat dan het object nog niet (helemaal) gecreëerd is.
- Home
- API doc
- Aanleiding Labcontrol
- Automatisch Testen
- Feedback Control Systems met Python
- Hantek 6022BL
- Installatie Labcontrol
- Instrumentatie, VISA en USB
- Interessante dingen
- Labcontrol Dashboard
- Labcontrol ontwerp en Python codering
- OWON DGE1060
- PyInstaller artikel
- Pythonkunde
- Tektronix TDS2002C USB
- Toolings Weetjes
- Wat heb je nodig voor Labcontrol
- klad