<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fi">
	<id>https://wikikko.info/w3/index.php?action=history&amp;feed=atom&amp;title=Python_oliot</id>
	<title>Python oliot - Muutoshistoria</title>
	<link rel="self" type="application/atom+xml" href="https://wikikko.info/w3/index.php?action=history&amp;feed=atom&amp;title=Python_oliot"/>
	<link rel="alternate" type="text/html" href="https://wikikko.info/w3/index.php?title=Python_oliot&amp;action=history"/>
	<updated>2026-04-16T14:51:20Z</updated>
	<subtitle>Tämän sivun muutoshistoria</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wikikko.info/w3/index.php?title=Python_oliot&amp;diff=832&amp;oldid=prev</id>
		<title>imported&gt;WikikkoSysop: 1 versio tuotiin</title>
		<link rel="alternate" type="text/html" href="https://wikikko.info/w3/index.php?title=Python_oliot&amp;diff=832&amp;oldid=prev"/>
		<updated>2016-09-03T15:08:17Z</updated>

		<summary type="html">&lt;p&gt;1 versio tuotiin&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Uusi sivu&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Yleistä==&lt;br /&gt;
Pääsivu: [[Python]]&lt;br /&gt;
&lt;br /&gt;
Olio-ohjelmointi. Luokka on rakenteinen tietotyyppi. Olio luodaan luokassa määritellyn ohjeen mukaan eli olio on luokan ilmentymä.&lt;br /&gt;
* Esimerkki: &lt;br /&gt;
* Korvaaminen, monimuotoisuus, periytyminen, piilotus. &lt;br /&gt;
&lt;br /&gt;
===Rakenne===&lt;br /&gt;
 1. luokan nimi&lt;br /&gt;
 2. attribuutit eli jäsenmuuttujat&lt;br /&gt;
 3. metodit eli jäsenfunktiot&lt;br /&gt;
&lt;br /&gt;
==Luokka (class)==&lt;br /&gt;
* luokka eli olion tyyppi, olion rakennusohje&lt;br /&gt;
* rakennusohje kirjoitetaan koodina&lt;br /&gt;
* ajettaessa ensimmäisen kerran luodaan yksi rakenne per luokka JA yksi rakenne per olio, jonka jälkeen rakenteita eli oloita tarvittava määrä&lt;br /&gt;
&lt;br /&gt;
 class Luokannimi:&lt;br /&gt;
&lt;br /&gt;
==Olio (object)==&lt;br /&gt;
* olio sisältää jäsenmuuttujia (attribuutteja, attribute, kenttä, field) ja jäsenfunktioita (metodeja, method, operaatio, operation)&lt;br /&gt;
* olio voi kutsua toisen olion jäsenfunktioita&lt;br /&gt;
* oliot sijaitsee tietokoneen muistissa ja poistettaessa vapauttaa muistia&lt;br /&gt;
&lt;br /&gt;
 uusiolio = Luokannimi()   # luodaan &amp;#039;&amp;#039;uusiolio&amp;#039;&amp;#039; joka perustuu Luokannimeen. Tämä on yläluokka.&lt;br /&gt;
 uusiolionimi = Luokannimi(jokuarvo):&lt;br /&gt;
&lt;br /&gt;
===Olioiden käyttäminen===&lt;br /&gt;
 olionnimi.jasenfunktio(jokuarvo)   # asetetaan oliolle nimeltä olionimi &amp;#039;&amp;#039;jokuarvo&amp;#039;&amp;#039; sen metodissa &amp;#039;&amp;#039;jasenfunktio&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* arvo voidaan hakea esimerkiksi input-käskyllä tai for-silmukalla listasta. Tämän jälkeen arvo esimerkiksi asetetaan kyseiseen olioon tai luodaan uusi olio. &lt;br /&gt;
 muuttuja1 = input(&amp;quot;Anna nimi&amp;quot;)&lt;br /&gt;
 syote = input(&amp;quot;Anna syote&amp;quot;)&lt;br /&gt;
 uusiolio = Luokannimi(syote)   # luodaan uusi luokka&lt;br /&gt;
 muuttuja1.metodinimi(uusiolio) &lt;br /&gt;
 &lt;br /&gt;
===Listat===&lt;br /&gt;
* listoja voidaan käyttää olioiden kanssa eri tarkoituksiin. lista = []&lt;br /&gt;
* listaa voidaan kuljettaa esimerkiksi funktioissa def funktionimi(lista):&lt;br /&gt;
* listaan lisätään esimerkiksi aliohjelmassa lista.append(uusiolio)   # lisää uusiolion listaan&lt;br /&gt;
* listaan lisätään esimerkiksi luokkamäärittelyssä self.lista.append(muuttuja1)&lt;br /&gt;
&lt;br /&gt;
 # haku listasta&lt;br /&gt;
 for i in lista:&lt;br /&gt;
     if i.jokuattribuutti == 0:   # haetaan lisasta &amp;#039;&amp;#039;jokuattribuuttien&amp;#039;&amp;#039; arvoista nolla-arvoa&lt;br /&gt;
         return(i)&lt;br /&gt;
 print(&amp;quot;Ei löytynyt&amp;quot;)&lt;br /&gt;
 return(None)&lt;br /&gt;
&lt;br /&gt;
===Jäsenmuuttuja l. attribuutti(member variable)===&lt;br /&gt;
* olion jäsenmuuttuja eli self.muuttuja1 = jokuarvo&lt;br /&gt;
* alustaja (initializer) __init__   eli kaksi alaviivaa kummalakin puolen. Tämä suoritetaan jokaista oliota luotaessa, ei siis tarvitse kutsua erikseen. Oliota luotaessa voidaan lähettää tähän arvoja juuri tätä kyseistä oliota koskien.&lt;br /&gt;
* jäsenfunktiossa self liittyy kyseiseen jäsenfunktioon. Eli toinen self taas toiseen jäsenfunktioon&lt;br /&gt;
** esim. def jasenfuntio1(self, muuttuja1)&lt;br /&gt;
** esim. self.muuttuja2 = 0&lt;br /&gt;
&lt;br /&gt;
 # Esimerkki&lt;br /&gt;
 class Luokannimi:&lt;br /&gt;
     def __init__(self):   # voidaan jättää myös pois&lt;br /&gt;
         self.muuttuja2 = True     # jos ei käytetä __init__, niin silloin rivi kirjoitetaan:  muuttuja2 = True&lt;br /&gt;
         self.muuttuja3 = 0&lt;br /&gt;
 &lt;br /&gt;
     def jasenfunktio1(self, muuttuja1):&lt;br /&gt;
         self.muuttuja2 = muuttuja1&lt;br /&gt;
 &lt;br /&gt;
 # olion luominen ja käyttäminen&lt;br /&gt;
 uusiolio = Luokannimi()   # luodaan UUSI olio&lt;br /&gt;
 print(uusiolio.muuttuja2)   # tulostaa oletusarvon True&lt;br /&gt;
 uusiolio.jasenfunktio1(False)&lt;br /&gt;
 print(uusiolio.muuttuja2)   # tulostaa muutetun arvon False&lt;br /&gt;
&lt;br /&gt;
 # alustus annetulla todellisella parametrilla&lt;br /&gt;
 class Luokannimi():&lt;br /&gt;
     def __init__(self,muuttuja1):&lt;br /&gt;
         self.muuttuja2 = muuttuja1&lt;br /&gt;
&lt;br /&gt;
 uusiolio = Luokannimi(10)   # luodaan uusi olio parametrilla 10&lt;br /&gt;
 print(uusiolio.muuttuja2)   # tulostaa arvon 10&lt;br /&gt;
&lt;br /&gt;
===Jäsenfunktio l. metodi (member function)===&lt;br /&gt;
* luokan aliohjelma eli def...&lt;br /&gt;
* ensimmäinen parametri viittaa kutsuttavaan olioon. Eli suluissa ensimmäinen. Voi olla self tai joku itse keksitty.&lt;br /&gt;
 class Luokannimi:&lt;br /&gt;
     def jasenfunktio1(self,muuttuja1):&lt;br /&gt;
         print(muuttuja1)&lt;br /&gt;
     def jasenfunktio2(self):&lt;br /&gt;
         print(&amp;quot;Teksti2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
* Jäsenfunktion kutsuminen:&lt;br /&gt;
 uusiolio = Luokannimi()&lt;br /&gt;
 uusiolio.jasenfunktio2()   # tulostaa Teksti2&lt;br /&gt;
 uusiolio.jasenfunktio1(&amp;quot;Teksti1&amp;quot;)   # tulostaa Teksti1&lt;br /&gt;
&lt;br /&gt;
==Periytyminen (inheritance)==&lt;br /&gt;
* Luokka (alaluokka, subclass) kopioi jonkun toisen luokan (yläluokka, superclass) metodit ja attribuutit. Alaluokkaan voi lisätä ominaisuuksia yläluokan metodien ja attribuuttien lisäksi.&lt;br /&gt;
* Yläluokan attribuutteihin viitataan kuten alaluokan omiin.&lt;br /&gt;
&lt;br /&gt;
 class Alaluokka(Yläluokka):&lt;br /&gt;
&lt;br /&gt;
===Korvaaminen (overriding)===&lt;br /&gt;
* Kirjoitetaan samalla tavoin kuin yläluokan metodi, mutta esimerkiksi eri metodi. Samalla tavoin tarkoittaa että kun metodi tai attribuutti kirjoitetaan koodiin samalla tavoin kuin yläluokassa, niin alaluokan attribuuttien arvot tai metodin toisenlainen käyttäytyminen on se mitä kyseissä oliossa käytetään tältä osin.&lt;br /&gt;
* VAATII SELVENNYSTÄ MITEN TOIMII&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Tietokoneet]]&lt;/div&gt;</summary>
		<author><name>imported&gt;WikikkoSysop</name></author>
	</entry>
</feed>