Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Python vragen  (gelezen 3391 keer)

Offline commandoline

  • LoCo-contact
    • marten-de-vries
    • Marten-de-Vries.nl
Python vragen
« Gepost op: 2008/06/16, 15:48:05 »
Hallo,

Een tijdje geleden ben ik begonnen met een beetje programmeren in python. Ik heb eerst wat rondgekeken in verschillende handleidingen e.d. en volg nu deze cursus:
http://www.sthurlow.com/python/
Ik begrijp de stof tot en met hoofdstuk 7, maar het lukt mij niet om classes te begrijpen. Mijn engels is nog niet heel erg goed, dus ik wil vragen of iemand me in het nederlands uit kan leggen wat classen zijn en hoe ze werken. Als tweede vraag ben ik erg benieuwd wat jullie me aanraden om mee verder te gaan als ik deze cursus afgesloten heb. Ik heb verder geen enkele programmeerervaring, dus ik wil graag iets simpels.

Alvast bedankt,
Marten

Offline BlackBurn

  • Lid
    • http://www.robmaas.eu
Python vragen
« Reactie #1 Gepost op: 2008/06/16, 16:40:22 »
Ik heb nog geen ervarig met Python, maar wel met programmeren in het algemeen.

Ik weet niet of ik het zo goed uitleg, is niet mijn sterkste kant, maar Classes kun je het beste zien als blauwdruk van een object. Een klasse beschrijft hoe het object eruit ziet en welke methodes, variabelen deze kent.

Van een klasse kun je dus een of meerdere objecten maken, waar je vervolgens de (publieke) methodes van kunt aanroepen. (even statische methodes daargelaten, weet niet of dit in Python ook bestaat.)
Live to win, dare to lose
http://www.robmaas.eu

Offline kasperken

  • Lid
Python vragen
« Reactie #2 Gepost op: 2008/06/16, 17:50:44 »
Citaat van: BlackBurn
Ik heb nog geen ervarig met Python, maar wel met programmeren in het algemeen.

Ik weet niet of ik het zo goed uitleg, is niet mijn sterkste kant, maar Classes kun je het beste zien als blauwdruk van een object. Een klasse beschrijft hoe het object eruit ziet en welke methodes, variabelen deze kent.

Van een klasse kun je dus een of meerdere objecten maken, waar je vervolgens de (publieke) methodes van kunt aanroepen. (even statische methodes daargelaten, weet niet of dit in Python ook bestaat.)
Zijn dat classes in php?

weet jij of iem anders daar een goede cursus over?
mvg Kasper

Python vragen
« Reactie #3 Gepost op: 2008/06/16, 18:36:03 »
Citaat van: kasperken
Citaat van: BlackBurn
Ik heb nog geen ervarig met Python, maar wel met programmeren in het algemeen.

Ik weet niet of ik het zo goed uitleg, is niet mijn sterkste kant, maar Classes kun je het beste zien als blauwdruk van een object. Een klasse beschrijft hoe het object eruit ziet en welke methodes, variabelen deze kent.

Van een klasse kun je dus een of meerdere objecten maken, waar je vervolgens de (publieke) methodes van kunt aanroepen. (even statische methodes daargelaten, weet niet of dit in Python ook bestaat.)
Zijn dat classes in php?

weet jij of iem anders daar een goede cursus over?
Dat is in alle object-geörienteerde talen zo'n beetje hetzelfde.
Misschien heb je hier nog iets aan, ik heb het niet echt doorgelezen:
http://nl.wikipedia.org/wiki/Klasse_(informatica)

Offline kasperken

  • Lid
Python vragen
« Reactie #4 Gepost op: 2008/06/16, 18:53:31 »
ok bedankt
mvg Kasper

Offline commandoline

  • LoCo-contact
    • marten-de-vries
    • Marten-de-Vries.nl
Python vragen
« Reactie #5 Gepost op: 2008/06/16, 20:51:50 »
Ten eerste: Bedankt voor je reactie BlackBurn! Toch heb ik nog een paar vragen:
Citaat van: BlackBurn
Classes kun je het beste zien als blauwdruk van een object. Een klasse beschrijft hoe het object eruit ziet en welke methodes, variabelen deze kent.
Wat moet ik in dit geval onder object verstaan? Ik ben 100% nieuw hiermee. Dus kan iemand dit nog een beetje verduidelijken?


Citaat van: BlackBurn
Van een klasse kun je dus een of meerdere objecten maken, waar je vervolgens de (publieke) methodes van kunt aanroepen. (even statische methodes daargelaten, weet niet of dit in Python ook bestaat.)
Wat zijn publieke en statische methodes? Ik heb dit nog niet gehad in mijn cursus. Het kan natuurlijk zijn dat dit er in python niet in zit, maar zoja, wil ik vragen of iemand dit nog kan uitleggen.

Alvast Bedankt
Marten

Offline BailHope

  • Lid
    • Techneut
Python vragen
« Reactie #6 Gepost op: 2008/06/23, 12:52:40 »
Ik bekijk het graag zo:

Op de weg rijden heel veel auto's. Laten we het eens hebben over een auto. Je kan niet zeggen wat voor kleur, type of snelheid die auto kan halen want ik heb je niet verteld wat voor een auto het is. "Auto" is in dit geval de klasse. Als we het dan hebben over het lelijke gele ding dat in mijn garage staat, dan kunnen we bovenstaande vragen wel beantwoorden en weten we dat dat gele ding het object is.

Het object is niets anders dan een auto gebouwd naar de structuur van de klasse. De klasse zegt bvb dat een auto een snelheid heeft, en een kleur en een merknaam en dergelijke. Welke dat zijn, dat zegt de klasse niet. Enkel een object heeft een specifieke invulling van deze "variabelen".

Het verschil tussen publieke en statische methodes is het volgende:
Stel je voor dat een klasse auto een methode heeft die "benzineTanken()" noemt. Deze methode is verantwoordelijk voor meer benzine in de tank van de auto te krijgen.
Okee dan, dus stel jezelf voor dat we een object hebben "taxi". We willen de taxi bijtanken, dus we zeggen: "taxi.benzineTanken()" en de taxi is bijgetankt. "benzineTanken" is dus in dit geval een publieke methode.

Een statische methode is een methode die gebruikt kan worden zonder dat er een specifiek object bestaat van deze klasse. Normale methoden kunnen gebruik maken van de attributen (de variabelen) van een object alsof die attributen gewone veranderlijken zijn. Ze zijn dus nauw met dat object verbonden. Het kan ook nuttig zijn, attributen en objecten te associëren met de hele verzameling objecten van hetzelfde type, dus met de klasse als geheel. Als de declaratie van een attribuut of methode voorafgegaan wordt door het sleutelwoord static, betreft het een lid van de klasse, niet van één object in het bijzonder.

Stel jezelf voor dat we een klasse "Auto" hebben. Stel nu dat deze klasse wil onthouden wat de laatst toegevoegde auto is. Dus aan welk object (van het type Auto) je ook vraagt wat de laatst toegevoegde auto is, je moet hetzelfde antwoord krijgen. Dat los je op door een static methode op te nemen in die klasse, bvb: "getLaatstToegevoegdeAuto" en ook een static variabele "laatstToegevoegdeAuto" waarin je de laatst toegevoegde auto opslaat. Deze laatste variabele staat maar één keer in je geheugen, en elk object van het type "auto" kan aan deze variabele aan.

Als je dan bijvoorbeeld wil weten wat nu de laatst toegevoegde auto is zeg je:
Auto.getLaatstToegevoegdeAuto();
Let op dat ik hier een methode aanroep van de klasse niet van het object. Dus ik zei niet "taxi.getLaatstToegevoegdeAuto()", maar ik zei: "Auto.getLaastToegevoegdeAuto()".

Hier is getLaatstToegevoegdeAuto dus een static methode.
Ubuntu user #12046
Mijn blog voor techneuten: http://techneut.wordpress.com
Voor de professionele IT'er: http://it-potato.blogspot.com

Offline Kev

  • Lid
Python vragen
« Reactie #7 Gepost op: 2008/06/24, 20:18:43 »
Een class is eigenlijk een adstracte omschrijving van een substantie, neem bijvoorbeeld beesten. Deze Class kan weer verder verdeelt worden in subclasses of beter gezegd soorten dieren zoals een kat, een hond.
Nu heb je methodes, dit kun je bezien als werkwoorden in een volkomen correct gevormde zin. Als je een Class hond hebt dan kan een method van die class dus blaf heten.
Ik hoop dat dit wat helpt, je kunt veel van de concepten in OO programmeren linken naar onderdelen uit de zinsbouw, claas zijn onderwerpen, methods zijn werkwoorden.
Attributen zijn bijwoorden.
Dus heel simpel kijk naar de zinsbouw en dan zie je ook veel linken naar OO-gerelateerd programmeren.
All Hail Lelouch, The 99th Emperor of Britannia
All Hail Lelouch! All Hail Lelouch!
Iedereen heeft het recht op mijn waarheid, zo wees geprezen.

Offline commandoline

  • LoCo-contact
    • marten-de-vries
    • Marten-de-Vries.nl
Python vragen
« Reactie #8 Gepost op: 2008/06/25, 10:36:57 »
Bedankt voor jullie antwoorden.
Ik ga verder expirimenteren met classes. De vraag in dit draadje is goed beantwoord, dus ik markeer het als opgelost.

Marten