{"id":20557,"date":"2023-01-24T12:56:45","date_gmt":"2023-01-24T12:56:45","guid":{"rendered":"https:\/\/pythoncursus.nl\/?p=19758"},"modified":"2023-05-03T11:13:52","modified_gmt":"2023-05-03T11:13:52","slug":"object-oriented-programming-python","status":"publish","type":"post","link":"https:\/\/datasciencepartners.nl\/object-oriented-programming-python\/","title":{"rendered":"Object-Oriented Programming (OOP) in Python: wat is het? + 4 principes"},"content":{"rendered":"<div class=\"vgblk-rw-wrapper limit-wrapper\">\n\n\t<p><strong>Object-oriented programming (of object-geori\u00ebnteerd programmeren)<\/strong>, afgekort OOP, is een veelgebruikte manier van programmeren. Hierbij wordt de code gestructureerd rondom objecten, waarbij data wordt opgeslagen als een attribuut van een object en logica wordt uitgevoerd in methodes die toebehoren aan een object.<\/p>\n<p>In deze blog leggen we middels voorbeelden uit wat OOP is, wat de basisprincipes zijn en waarom dit nuttig is. We houden de volgende structuur aan:<\/p>\n<ul> \t\n<li><a href=\"#wat-is-oop\"><strong>Wat is Object-Oriented Programming (OOP)?<\/strong><\/a><\/li>\n\n<li><a href=\"#oop-in-python\"><strong>Object-Oriented Programming in Python<\/strong><\/a><\/li>\n\n<li><a href=\"#principes-oop\"><strong>De 4 principes van Object-Oriented Programming<\/strong><\/a><\/li>\n\n<li><a href=\"#wanneer-oop-gebruiken\"><strong>Wanneer gebruik ik Object Geori\u00ebnteerd programmeren?<\/strong><\/a><\/li>\n<\/ul>\n\n<h2 id=\"wat-is-oop\"><strong>Wat is Object-Oriented Programming (OOP)?<\/strong><\/h2>\n<p>Bij object-ge\u00f6rienteerd programmeren redeneer je vanuit objecten. Een object heeft eigenschappen en <strong><a href=\"https:\/\/datasciencepartners.nl\/python-function\/\">functies<\/a><\/strong> waarin logica uitgevoerd wordt op basis van de eigenschappen van een object. Een functie die aan een object toebehoort heet een\u00a0<em>method<\/em>. Hiermee koppel je attributen en methods aan een object waardoor je code op een logische wijze groepeert.<\/p>\n<p>Een voorbeeld: je bouwt een applicatie waarbij je data\u00a0<a href=\"https:\/\/datasciencepartners.nl\/data-visualiseren-python\/\" target=\"_blank\" rel=\"noopener\">visualiseert<\/a>\u00a0en als een rapportage verzendt naar klanten. Een 'rapportage' en een 'klant' zijn in dit voorbeeld een object die de volgende eigenschappen zouden kunnen hebben:<\/p>\n<ul> \t\n<li><strong>Rapportage<\/strong>: dataset, visualisatie, naam<\/li>\n\n<li><strong>Klant<\/strong>: naam, e-mail adres<\/li>\n<\/ul>\n<p>Daarnaast wil je een rapportage kunnen verzenden, bijvoorbeeld met een method <code>send<\/code>\u00a0die toebehoort aan het object 'rapportage'.<br \/><!-- This site is converting visitors into subscribers and customers with OptinMonster - https:\/\/optinmonster.com :: Campaign Title: Cheatsheet inline -->\n<div id=\"om-xzn5asfsy4ouhuahjqhr-holder\"><\/div>\n<script>(function(d,u,ac){var s=d.createElement('script');s.type='text\/javascript';s.src='https:\/\/a.omappapi.com\/app\/js\/api.min.js';s.async=true;s.dataset.user=u;s.dataset.campaign=ac;d.getElementsByTagName('head')[0].appendChild(s);})(document,77079,'xzn5asfsy4ouhuahjqhr');<\/script>\n<!-- \/ OptinMonster --><\/p>\n<h2 id=\"oop-in-python\"><strong>Object-Oriented Programming in Python<\/strong><\/h2>\n<p>Objecten worden gedefinie\u00ebrd door middel van een class, dit is de definitie waaraan een object voldoet. Op basis van deze class kan een object worden aangemaakt. Een object is een <strong><a href=\"https:\/\/datasciencepartners.nl\/python-variable\/\">variabele<\/a><\/strong> in <strong><a href=\"https:\/\/datasciencepartners.nl\/wat-is-python\/\">Python<\/a><\/strong> met als datatype de class.<\/p>\n<p>De eigenschappen van een object kan worden vastgelegd in een\u00a0<strong><a href=\"https:\/\/datasciencepartners.nl\/python-dictionary\" target=\"_blank\" rel=\"noopener\">dictionary<\/a><\/strong>, maar de mogelijkheden van een dictionary zijn beperkt ten opzichte van een class.<\/p>\n<p>We gaan dit in een voorbeeld toelichten. Een class waarin alleen de naam van een rapportage is gedefinieerd maak je als volgt:<\/p>\n\n\nIn\u00a0[1]:\n\n\n\n\nclass Rapportage:<br \/><br \/>    def __init__(self, naam):<br \/>        self.naam = naam<br \/><br \/>test_rapportage = Rapportage(naam='Test')<br \/>\n\n\n\n\n\n<p>Je ziet hier het volgende:<\/p>\n<ul> \t\n<li>De conventie is dat een classnaam altijd met een hoofdletter begint (in tegenstelling tot normale Python variabelen)<\/li>\n\n<li>Binnen de class is een\u00a0<em>method<\/em>\u00a0genaamd\u00a0<code>__init__()<\/code>. Deze method wordt uitgevoerd als je een object maakt op basis van deze class. Het object wordt dan ge\u00efnitialiseerd (vandaar de term 'init').<\/li>\n\n<li>Het eerst argument van\u00a0<code>__init__()<\/code>\u00a0is\u00a0<code>self<\/code>, dit verwijst naar het object dat gecre\u00eberd is.<\/li>\n\n<li>De regel\u00a0<code>self.naam = naam<\/code>\u00a0zorgt ervoor dat het object de naam krijgt die je opgeeft. De waarde van\u00a0<code>test_rapportage.naam<\/code>\u00a0is nu gelijk aan\u00a0<code>'Test'<\/code>.<\/li>\n<\/ul>\n<p>Eigenschappen van een object kan je benaderen via de 'dot notatie', bijvoorbeeld via\u00a0<code>test_rapportage.naam<\/code>, hetgeen gelijk is aan\u00a0<code>'Test'<\/code>.<\/p>\n<p>In het voorbeeld hierboven beschreven had een rapportage meer eigenschappen, deze voegen we toe. Daarnaast moet de rapportage verzonden kunnen worden.<\/p>\n\n\nIn\u00a0[2]:\n\n\n\n\nimport pandas as pd<br \/><br \/>class Rapportage:<br \/><br \/>    def __init__(self, naam, df_dataset):<br \/>        self.naam = naam<br \/>        self.df_dataset = df_dataset<br \/>        self.klanten = []<br \/><br \/>    def send(self):<br \/>        # in dit voorbeeld houden we het simpel en wordt het verzenden gesimuleerd middels print().<br \/>        for klant in self.klanten:<br \/>            print(f\"Hallo {klant.naam}\")<br \/>            print(f\"De dataset met {len(self.df_dataset.index)} regels wordt verstuurd naar {klant.email}.\")<br \/><br \/>dataset = [<br \/>    { 'meetpunt': 1, 'waarde': 100 },<br \/>    { 'meetpunt': 2, 'waarde': 200 },<br \/>    { 'meetpunt': 3, 'waarde': 300 },<br \/>]<br \/>    <br \/>test_rapportage = Rapportage(naam='Test', df_dataset=pd.DataFrame(dataset))<br \/>\n\n\n\n\n\n<p>Nu maken we ook nog de klant, deze heeft een naam en e-mail adres, en voegen dit toe aan de rapportage.<\/p>\n\n\nIn\u00a0[3]:\n\n\n\n\nclass Klant:<br \/>    def __init__(self, naam, email):<br \/>        self.naam = naam<br \/>        self.email = email<br \/><br \/>klant_dsp = Klant(naam='Data Science Partners', email='info@datasciencepartners.nl')<br \/>test_rapportage.klanten.append(klant_dsp)<br \/>\n\n\n\n\n\n<p>Vervolgens verzenden we de rapportage naar deze klant.<\/p>\n\n\nIn\u00a0[4]:\n\n\n\n\ntest_rapportage.send()<br \/>\n\n\n\n\n\n\n\n\n\n\n\nHallo Data Science Partners<br \/>De dataset met 3 regels wordt verstuurd naar info@datasciencepartners.nl.<br \/>\n\n\n\n\n<p>Bovenstaand voorbeeld beschrijft de werking van OOP in Python:<\/p>\n<ul> \t\n<li>In classes beschrijf je definities<\/li>\n\n<li>Objecten worden aangemaakt door een class aan te roepen<\/li>\n\n<li>Object-specifieke logica is in de class beschreven<\/li>\n<\/ul>\n<p>Omdat classes je dwingen om logica te groeperen per object, schrijf je vaak automatisch betere code die beter schaalbaar en leesbaar is.<\/p>\nMet vertrouwen Python inzetten voor data science vraagstukken? Schrijf je in voor een van onze trainingen.<br \/><a href=\"https:\/\/datasciencepartners.nl\/python-cursus\/\"><button>Python cursus voor data science<\/button><\/a><br \/><a href=\"https:\/\/datasciencepartners.nl\/python-machine-learning-training\/\"><button>Python machine learning training<\/button><\/a><br \/><a href=\"https:\/\/datasciencepartners.nl\/data-science-opleiding\/\"><button>Data Science opleiding (4 dagen)<\/button><\/a><br \/><a href=\"https:\/\/datasciencepartners.nl\/data-science-bootcamp\/\"><button>Data Science bootcamp (10 dagen)<\/button><\/a>\n\n<h2 id=\"principes-oop\"><strong>De 4 principes van Object-Oriented Programming<\/strong><\/h2>\n<p>Object-ge\u00f6rienteerd programmeren kent in elke taal een aantal kenmerkende basisprincipes die OOP krachtig maken. Dit zijn:<\/p>\n<ol> \t\n<li>Inheritance (overerving)<\/li>\n\n<li>Encapsulation (inkapseling)<\/li>\n\n<li>Abstraction (abstraheren)<\/li>\n\n<li>Polymorphism (polymorfisme)<\/li>\n<\/ol>\n\n<h3 id=\"1.-Inheritance-(overerving)\">1. Inheritance (overerving)<\/h3>\n<p>Middels overerving kan je classes cre\u00eberen op basis van andere classes. Een voorbeeld:<\/p>\n\n\nIn\u00a0[5]:\n\n\n\n\nclass RapportageMetLijngrafiek(Rapportage):<br \/><br \/>    def __init__(self, naam, df_dataset):<br \/>        super().__init__(naam, df_dataset)<br \/><br \/>    def get_visualization(self):<br \/>        return self.df_dataset.plot(kind=\"line\")<br \/>\n\n\n\n\n\n<p>Je ziet hier dat we de class baseren op de reeds gedefinieerde class\u00a0<code>Rapportage<\/code>. In de\u00a0<code>__init__()<\/code>\u00a0method roepen we\u00a0<code>__init__()<\/code>\u00a0methode van de parent (<code>Rapportage<\/code>) aan middels\u00a0<code>super()<\/code>.<\/p>\n<p>Dit child class heeft daarnaast een method\u00a0<code>get_visualization()<\/code>\u00a0waarmee een grafiek gemaakt kan worden. Deze method is op deze manier alleen beschikbaar voor objecten met class\u00a0<code>RapportageMetLijnGrafiek<\/code>. De overige eigenschappen zijn echter overge\u00ebrft van de class\u00a0<code>Rapportage<\/code>.<\/p>\n<h3 id=\"2.-Encapsulation-(inkapseling)\">2. Encapsulation (inkapseling)<\/h3>\n<p>In classes kan je bepaalde data alleen beschikbaar maken binnen een object, zodat er geen uitwisseling van informatie kan plaats vinden. Hierdoor blijft logica gegarandeerd ge\u00efsoleerd. Dit kan je doen door een variabele te laten beginnen met twee underscores. We passen het eerder gebruikte voorbeeld aan door de variable\u00a0<code>df_dataset<\/code>\u00a0te laten beginnen met twee underscores.<\/p>\n\n\nIn\u00a0[6]:\n\n\n\n\nimport pandas as pd<br \/><br \/>class Rapportage:<br \/><br \/>    def __init__(self, naam, df_dataset):<br \/>        self.naam = naam<br \/>        self.__df_dataset = df_dataset<br \/>        self.klanten = []<br \/><br \/>dataset = [<br \/>    { 'meetpunt': 1, 'waarde': 100 },<br \/>    { 'meetpunt': 2, 'waarde': 200 },<br \/>    { 'meetpunt': 3, 'waarde': 300 },<br \/>]<br \/>    <br \/>test_rapportage = Rapportage(naam='Test', df_dataset=pd.DataFrame(dataset))<br \/>\n\n\n\n\n\n<p>De dataset is nu niet bereikbaar buiten het object: de variabele\u00a0<code>test_rapportage.__df_dataset<\/code>\u00a0is niet beschikbaar en zal een error geven. Zonder de twee underscores had dit wel gewerkt. De error ziet er als volgt uit:<\/p>\n\n\n---------------------------------------------------------------------------<br \/>AttributeError                            Traceback (most recent call last)<br \/>Cell In [5], line 18<br \/>     10 dataset = [<br \/>     11     { 'meetpunt': 1, 'waarde': 100 },<br \/>     12     { 'meetpunt': 2, 'waarde': 200 },<br \/>     13     { 'meetpunt': 3, 'waarde': 300 },<br \/>     14 ]<br \/>     16 test_rapportage = Rapportage(naam='Test', df_dataset=pd.DataFrame(dataset))<br \/>---&gt; 18 test_rapportage.__df_dataset<br \/><br \/>AttributeError: 'Rapportage' object has no attribute '__df_dataset'<br \/>\n\n\n\n<h3 id=\"3.-Abstraction-(abstraheren)\">3. Abstraction (abstraheren)<\/h3>\n<p>Door gebruik te maken van methods kan je logica abstraheren. In bovenstaande voorbeeld kan je een rapportage verzenden door de method\u00a0<code>.send()<\/code>\u00a0aan te roepen. De logica daarvan definieer je 1x in de class, maar in de rest van de code hoef je niet na te denken over hoe het concept van iets 'verzenden' is doorvertaald naar code.<\/p>\n<h3 id=\"4.-Polymorphism-(polyformisme)\">4. Polymorphism (polyformisme)<\/h3>\n<p>Polymorfisme betekent dat dezelfde functie of method, afhankelijk van de class, andere logica uitvoert. In het voorbeeld bij 'inheritance' staat hier een voorbeeld van. We kunnen ook nog een class\u00a0<code>RapportageMetStaafGrafiek<\/code>\u00a0maken:<\/p>\n\n\nIn\u00a0[7]:\n\n\n\n\nclass RapportageMetLijngrafiek(Rapportage):<br \/><br \/>    def __init__(self, naam, df_dataset):<br \/>        super().__init__(naam, df_dataset)<br \/><br \/>    def get_visualization(self):<br \/>        return self.df_dataset.plot(kind=\"line\")        <br \/><br \/>class RapportageMetStaafgrafiek(Rapportage):<br \/><br \/>    def __init__(self, naam, df_dataset):<br \/>        super().__init__(naam, df_dataset)<br \/><br \/>    def get_visualization(self):<br \/>        return self.df_dataset.plot(kind=\"bar\")        <br \/><br \/><br \/>rapportage1 = RapportageMetLijngrafiek(naam='Lijngrafiek', df_dataset=dataset)<br \/>rapportage2 = RapportageMetStaafgrafiek(naam='Staafgrafiek', df_dataset=dataset)<br \/>\n\n\n\n\n\n<p>De objecten\u00a0<code>rapportage1<\/code>\u00a0en\u00a0<code>rapportage2<\/code>\u00a0hebben beide een method\u00a0<code>get_visualization()<\/code>, maar zoals je ziet zal het ene object een lijngrafiek krijgen en de ander een staafgrafiek.<\/p>\n<h2 id=\"wanneer-oop-gebruiken\"><strong>Wanneer gebruik ik Object Geori\u00ebnteerd programmeren?<\/strong><\/h2>\n<p>OOP is bijna altijd een goede keuze: je maakt dan automatisch gebruik van de hierboven beschreven principes waardoor code wordt versimpeld en beter leesbaar is. Er zijn echter ook situaties waarbij het minder nut heeft. Vaak merk je dit omdat het moeilijk is te bedenken wat de 'objecten' zouden moeten zijn, dit komt vaak voor in kleine projecten waarbij code (nog) geen herhalende of repeterende stappen bevat. Naarmate een project groeit verandert dit en kan het verstandig zijn om code te groeperen in objecten en classes.<\/p>\n<p><strong>Wil je nog veel meer leren over met mogelijkheden met Python voor Data Science? Schrijf je dan in voor onze\u00a0<a href=\"https:\/\/datasciencepartners.nl\/python-cursus\/\">Python cursus<\/a>\u00a0voor data science, onze\u00a0<a href=\"https:\/\/datasciencepartners.nl\/python-machine-learning-training\/\">machine learning training<\/a>, onze <a href=\"https:\/\/datasciencepartners.nl\/data-science-opleiding\/\">data science opleiding<\/a> of onze <a href=\"https:\/\/datasciencepartners.nl\/data-science-bootcamp\/\">data science bootcamp<\/a> en leer met vertrouwen te programmeren en analyseren in Python. Nadat je een van onze trainingen hebt gevolgd kun je zelfstandig verder aan de slag. Je kunt ook altijd even contact opnemen als je een vraag hebt.<\/strong><\/p>\n<p><a href=\"https:\/\/datasciencepartners.nl\/opleidingsbrochures\/\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/datasciencepartners.nl\/wp-content\/uploads\/2020\/07\/opleidingsbrochures-data-science-en-python-trainingen.png\" sizes=\"auto, (max-width: 410px) 100vw, 410px\" srcset=\"https:\/\/datasciencepartners.nl\/wp-content\/uploads\/2020\/07\/opleidingsbrochures-data-science-en-python-trainingen.png 1000w, https:\/\/datasciencepartners.nl\/wp-content\/uploads\/2020\/07\/opleidingsbrochures-data-science-en-python-trainingen-300x246.png 300w, https:\/\/datasciencepartners.nl\/wp-content\/uploads\/2020\/07\/opleidingsbrochures-data-science-en-python-trainingen-768x629.png 768w, https:\/\/datasciencepartners.nl\/wp-content\/uploads\/2020\/07\/opleidingsbrochures-data-science-en-python-trainingen-630x516.png 630w, https:\/\/datasciencepartners.nl\/wp-content\/uploads\/2020\/07\/opleidingsbrochures-data-science-en-python-trainingen-420x344.png 420w, https:\/\/datasciencepartners.nl\/wp-content\/uploads\/2020\/07\/opleidingsbrochures-data-science-en-python-trainingen-840x688.png 840w, https:\/\/datasciencepartners.nl\/wp-content\/uploads\/2020\/07\/opleidingsbrochures-data-science-en-python-trainingen-315x258.png 315w\" alt=\"\" width=\"410\" height=\"336\" \/><\/a><\/p>\n<p><strong><a href=\"https:\/\/datasciencepartners.nl\/opleidingsbrochures\/\">Download \u00e9\u00e9n van onze opleidingsbrochures voor meer informatie<\/a><\/strong><\/p>\n<p>&nbsp;<\/p>\n\n<\/div><!-- .vgblk-rw-wrapper -->","protected":false},"excerpt":{"rendered":"<p>Object-oriented programming (of object-geori\u00ebnteerd programmeren), afgekort OOP, is een veelgebruikte manier van programmeren. Hierbij wordt de code gestructureerd rondom objecten, waarbij data wordt opgeslagen als een attribuut van een object en logica wordt uitgevoerd in methodes die toebehoren aan een object. In deze blog leggen we middels voorbeelden uit wat OOP is, wat de basisprincipes&#8230;<\/p>\n","protected":false},"author":8,"featured_media":20536,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"footnotes":""},"categories":[110],"tags":[],"class_list":["post-20557","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.7 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Object-Oriented Programming (OOP) in Python: wat is het? + 4 principes<\/title>\n<meta name=\"description\" content=\"Object-oriented programming (OOP) is een veelgebruikte manier van programmeren. Alles over deze manier van programmeren leren in Python?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/datasciencepartners.nl\/object-oriented-programming-python\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Object-Oriented Programming (OOP) in Python: wat is het? + 4 principes\" \/>\n<meta property=\"og:description\" content=\"Object-oriented programming (OOP) is een veelgebruikte manier van programmeren. Alles over deze manier van programmeren leren in Python?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/datasciencepartners.nl\/object-oriented-programming-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Data Science Partners | Trainingen Data Science in Python, SQL &amp; R\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Data-Science-Partners-102566501086560\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-24T12:56:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-03T11:13:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/datasciencepartners.nl\/wp-content\/uploads\/2023\/01\/object-oriented-programming-oop-met-python.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1500\" \/>\n\t<meta property=\"og:image:height\" content=\"876\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Terry Crapts\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"Terry Crapts\" \/>\n\t<meta name=\"twitter:label2\" content=\"Geschatte leestijd\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/object-oriented-programming-python\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/object-oriented-programming-python\\\/\"},\"author\":{\"name\":\"Terry Crapts\",\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/#\\\/schema\\\/person\\\/6559c1cf718ec987a553a1557ffab5ce\"},\"headline\":\"Object-Oriented Programming (OOP) in Python: wat is het? + 4 principes\",\"datePublished\":\"2023-01-24T12:56:45+00:00\",\"dateModified\":\"2023-05-03T11:13:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/object-oriented-programming-python\\\/\"},\"wordCount\":1355,\"publisher\":{\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/object-oriented-programming-python\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/datasciencepartners.nl\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/object-oriented-programming-oop-met-python.jpg\",\"articleSection\":[\"Python\"],\"inLanguage\":\"nl-NL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/object-oriented-programming-python\\\/\",\"url\":\"https:\\\/\\\/datasciencepartners.nl\\\/object-oriented-programming-python\\\/\",\"name\":\"Object-Oriented Programming (OOP) in Python: wat is het? + 4 principes\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/object-oriented-programming-python\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/object-oriented-programming-python\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/datasciencepartners.nl\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/object-oriented-programming-oop-met-python.jpg\",\"datePublished\":\"2023-01-24T12:56:45+00:00\",\"dateModified\":\"2023-05-03T11:13:52+00:00\",\"description\":\"Object-oriented programming (OOP) is een veelgebruikte manier van programmeren. Alles over deze manier van programmeren leren in Python?\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/object-oriented-programming-python\\\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/datasciencepartners.nl\\\/object-oriented-programming-python\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/object-oriented-programming-python\\\/#primaryimage\",\"url\":\"https:\\\/\\\/datasciencepartners.nl\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/object-oriented-programming-oop-met-python.jpg\",\"contentUrl\":\"https:\\\/\\\/datasciencepartners.nl\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/object-oriented-programming-oop-met-python.jpg\",\"width\":1500,\"height\":876,\"caption\":\"object-oriented programming oop met python\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/object-oriented-programming-python\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/datasciencepartners.nl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Object-Oriented Programming (OOP) in Python: wat is het? + 4 principes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/#website\",\"url\":\"https:\\\/\\\/datasciencepartners.nl\\\/\",\"name\":\"Data Science Partners | Trainingen Data Science & AI in Python, SQL & R\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/datasciencepartners.nl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/#organization\",\"name\":\"Data Science Partners\",\"url\":\"https:\\\/\\\/datasciencepartners.nl\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/datasciencepartners.nl\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/data-science-partners.png\",\"contentUrl\":\"https:\\\/\\\/datasciencepartners.nl\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/data-science-partners.png\",\"width\":655,\"height\":329,\"caption\":\"Data Science Partners\"},\"image\":{\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Data-Science-Partners-102566501086560\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/23709861\\\/\"],\"description\":\"Data Science Partners helpt organisaties met Data Science & AI. We werken voornamelijk met Python, SQL & R. We geven trainingen en doen consultancy opdrachten.\",\"email\":\"info@datasciencepartners.nl\",\"telephone\":\"0202443146\",\"legalName\":\"Data Science Partners B.V.\",\"foundingDate\":\"2019-10-01\",\"vatID\":\"NL863566261B01\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"11\",\"maxValue\":\"50\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/datasciencepartners.nl\\\/#\\\/schema\\\/person\\\/6559c1cf718ec987a553a1557ffab5ce\",\"name\":\"Terry Crapts\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8a6521894c6c79959d7ec83dc2e812a616d659bfcc19d6b232499a958e8727ff?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8a6521894c6c79959d7ec83dc2e812a616d659bfcc19d6b232499a958e8727ff?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8a6521894c6c79959d7ec83dc2e812a616d659bfcc19d6b232499a958e8727ff?s=96&d=mm&r=g\",\"caption\":\"Terry Crapts\"},\"description\":\"Terry is full-stack AI-ontwikkelaar en data scientist. Hij geeft gestudeerd aan de TU Delft. In zijn carri\u00e8re richt hij zich al 10+ jaar op het optimaal waarde halen uit data door toepassing van machine learning en AI.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/terry-crapts\\\/\"],\"honorificPrefix\":\"Heer\",\"honorificSuffix\":\"Ir.\",\"gender\":\"mannelijk\",\"knowsAbout\":[\"Python\",\"R\",\"Data Science\",\"AI\",\"SQL\",\"Data Engineering\"],\"knowsLanguage\":[\"Nederlands\",\"Engels\"],\"jobTitle\":\"Full-stack AI developer\",\"worksFor\":\"Data Science Partners\",\"url\":\"https:\\\/\\\/datasciencepartners.nl\\\/author\\\/terry-crapts\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Object-Oriented Programming (OOP) in Python: wat is het? + 4 principes","description":"Object-oriented programming (OOP) is een veelgebruikte manier van programmeren. Alles over deze manier van programmeren leren in Python?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/datasciencepartners.nl\/object-oriented-programming-python\/","og_locale":"nl_NL","og_type":"article","og_title":"Object-Oriented Programming (OOP) in Python: wat is het? + 4 principes","og_description":"Object-oriented programming (OOP) is een veelgebruikte manier van programmeren. Alles over deze manier van programmeren leren in Python?","og_url":"https:\/\/datasciencepartners.nl\/object-oriented-programming-python\/","og_site_name":"Data Science Partners | Trainingen Data Science in Python, SQL &amp; R","article_publisher":"https:\/\/www.facebook.com\/Data-Science-Partners-102566501086560","article_published_time":"2023-01-24T12:56:45+00:00","article_modified_time":"2023-05-03T11:13:52+00:00","og_image":[{"width":1500,"height":876,"url":"https:\/\/datasciencepartners.nl\/wp-content\/uploads\/2023\/01\/object-oriented-programming-oop-met-python.jpg","type":"image\/jpeg"}],"author":"Terry Crapts","twitter_card":"summary_large_image","twitter_misc":{"Geschreven door":"Terry Crapts","Geschatte leestijd":"7 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/datasciencepartners.nl\/object-oriented-programming-python\/#article","isPartOf":{"@id":"https:\/\/datasciencepartners.nl\/object-oriented-programming-python\/"},"author":{"name":"Terry Crapts","@id":"https:\/\/datasciencepartners.nl\/#\/schema\/person\/6559c1cf718ec987a553a1557ffab5ce"},"headline":"Object-Oriented Programming (OOP) in Python: wat is het? + 4 principes","datePublished":"2023-01-24T12:56:45+00:00","dateModified":"2023-05-03T11:13:52+00:00","mainEntityOfPage":{"@id":"https:\/\/datasciencepartners.nl\/object-oriented-programming-python\/"},"wordCount":1355,"publisher":{"@id":"https:\/\/datasciencepartners.nl\/#organization"},"image":{"@id":"https:\/\/datasciencepartners.nl\/object-oriented-programming-python\/#primaryimage"},"thumbnailUrl":"https:\/\/datasciencepartners.nl\/wp-content\/uploads\/2023\/01\/object-oriented-programming-oop-met-python.jpg","articleSection":["Python"],"inLanguage":"nl-NL"},{"@type":"WebPage","@id":"https:\/\/datasciencepartners.nl\/object-oriented-programming-python\/","url":"https:\/\/datasciencepartners.nl\/object-oriented-programming-python\/","name":"Object-Oriented Programming (OOP) in Python: wat is het? + 4 principes","isPartOf":{"@id":"https:\/\/datasciencepartners.nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/datasciencepartners.nl\/object-oriented-programming-python\/#primaryimage"},"image":{"@id":"https:\/\/datasciencepartners.nl\/object-oriented-programming-python\/#primaryimage"},"thumbnailUrl":"https:\/\/datasciencepartners.nl\/wp-content\/uploads\/2023\/01\/object-oriented-programming-oop-met-python.jpg","datePublished":"2023-01-24T12:56:45+00:00","dateModified":"2023-05-03T11:13:52+00:00","description":"Object-oriented programming (OOP) is een veelgebruikte manier van programmeren. Alles over deze manier van programmeren leren in Python?","breadcrumb":{"@id":"https:\/\/datasciencepartners.nl\/object-oriented-programming-python\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/datasciencepartners.nl\/object-oriented-programming-python\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/datasciencepartners.nl\/object-oriented-programming-python\/#primaryimage","url":"https:\/\/datasciencepartners.nl\/wp-content\/uploads\/2023\/01\/object-oriented-programming-oop-met-python.jpg","contentUrl":"https:\/\/datasciencepartners.nl\/wp-content\/uploads\/2023\/01\/object-oriented-programming-oop-met-python.jpg","width":1500,"height":876,"caption":"object-oriented programming oop met python"},{"@type":"BreadcrumbList","@id":"https:\/\/datasciencepartners.nl\/object-oriented-programming-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/datasciencepartners.nl\/"},{"@type":"ListItem","position":2,"name":"Object-Oriented Programming (OOP) in Python: wat is het? + 4 principes"}]},{"@type":"WebSite","@id":"https:\/\/datasciencepartners.nl\/#website","url":"https:\/\/datasciencepartners.nl\/","name":"Data Science Partners | Trainingen Data Science & AI in Python, SQL & R","description":"","publisher":{"@id":"https:\/\/datasciencepartners.nl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/datasciencepartners.nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/datasciencepartners.nl\/#organization","name":"Data Science Partners","url":"https:\/\/datasciencepartners.nl\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/datasciencepartners.nl\/#\/schema\/logo\/image\/","url":"https:\/\/datasciencepartners.nl\/wp-content\/uploads\/2021\/02\/data-science-partners.png","contentUrl":"https:\/\/datasciencepartners.nl\/wp-content\/uploads\/2021\/02\/data-science-partners.png","width":655,"height":329,"caption":"Data Science Partners"},"image":{"@id":"https:\/\/datasciencepartners.nl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Data-Science-Partners-102566501086560","https:\/\/www.linkedin.com\/company\/23709861\/"],"description":"Data Science Partners helpt organisaties met Data Science & AI. We werken voornamelijk met Python, SQL & R. We geven trainingen en doen consultancy opdrachten.","email":"info@datasciencepartners.nl","telephone":"0202443146","legalName":"Data Science Partners B.V.","foundingDate":"2019-10-01","vatID":"NL863566261B01","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"11","maxValue":"50"}},{"@type":"Person","@id":"https:\/\/datasciencepartners.nl\/#\/schema\/person\/6559c1cf718ec987a553a1557ffab5ce","name":"Terry Crapts","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/secure.gravatar.com\/avatar\/8a6521894c6c79959d7ec83dc2e812a616d659bfcc19d6b232499a958e8727ff?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/8a6521894c6c79959d7ec83dc2e812a616d659bfcc19d6b232499a958e8727ff?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8a6521894c6c79959d7ec83dc2e812a616d659bfcc19d6b232499a958e8727ff?s=96&d=mm&r=g","caption":"Terry Crapts"},"description":"Terry is full-stack AI-ontwikkelaar en data scientist. Hij geeft gestudeerd aan de TU Delft. In zijn carri\u00e8re richt hij zich al 10+ jaar op het optimaal waarde halen uit data door toepassing van machine learning en AI.","sameAs":["https:\/\/www.linkedin.com\/in\/terry-crapts\/"],"honorificPrefix":"Heer","honorificSuffix":"Ir.","gender":"mannelijk","knowsAbout":["Python","R","Data Science","AI","SQL","Data Engineering"],"knowsLanguage":["Nederlands","Engels"],"jobTitle":"Full-stack AI developer","worksFor":"Data Science Partners","url":"https:\/\/datasciencepartners.nl\/author\/terry-crapts\/"}]}},"_links":{"self":[{"href":"https:\/\/datasciencepartners.nl\/wp-json\/wp\/v2\/posts\/20557","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/datasciencepartners.nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/datasciencepartners.nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/datasciencepartners.nl\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/datasciencepartners.nl\/wp-json\/wp\/v2\/comments?post=20557"}],"version-history":[{"count":4,"href":"https:\/\/datasciencepartners.nl\/wp-json\/wp\/v2\/posts\/20557\/revisions"}],"predecessor-version":[{"id":20684,"href":"https:\/\/datasciencepartners.nl\/wp-json\/wp\/v2\/posts\/20557\/revisions\/20684"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/datasciencepartners.nl\/wp-json\/wp\/v2\/media\/20536"}],"wp:attachment":[{"href":"https:\/\/datasciencepartners.nl\/wp-json\/wp\/v2\/media?parent=20557"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/datasciencepartners.nl\/wp-json\/wp\/v2\/categories?post=20557"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/datasciencepartners.nl\/wp-json\/wp\/v2\/tags?post=20557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}