{"version":"1.0","provider_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","provider_url":"https:\/\/fatihsoysal.com\/blog","author_name":"Fatih Soysal","author_url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/","title":"Python Decoratorlar\u0131: Fonksiyonlar\u0131 G\u00fc\u00e7lendirmenin Yolu","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"KUXQPYT9cE\"><a href=\"https:\/\/fatihsoysal.com\/blog\/python-decoratorlari-fonksiyonlari-guclendirmenin-yolu\/\">Python Decoratorlar\u0131: Fonksiyonlar\u0131 G\u00fc\u00e7lendirmenin Yolu<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/fatihsoysal.com\/blog\/python-decoratorlari-fonksiyonlari-guclendirmenin-yolu\/embed\/#?secret=KUXQPYT9cE\" width=\"600\" height=\"338\" title=\"&#8220;Python Decoratorlar\u0131: Fonksiyonlar\u0131 G\u00fc\u00e7lendirmenin Yolu&#8221; &#8212; Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" data-secret=\"KUXQPYT9cE\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n<\/script>\n","description":"Python programlama dilinde kodunuzu daha mod\u00fcler, okunabilir ve bak\u0131m\u0131 kolay hale getirmenin yollar\u0131n\u0131 m\u0131 ar\u0131yorsunuz? \u00d6zellikle s\u00fcrekli tekrar eden g\u00f6revler, \u00f6rne\u011fin loglama, yetkilendirme veya bir fonksiyonun \u00e7al\u0131\u015fma s\u00fcresini \u00f6l\u00e7me gibi durumlarla kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131zda, kod tekrar\u0131n\u0131 nas\u0131l minimuma indirece\u011finizi merak ediyor olabilirsiniz. \u0130\u015fte bu noktada Python decorator'lar\u0131 devreye giriyor. Decorator'lar, mevcut fonksiyonlar\u0131n davran\u0131\u015flar\u0131n\u0131 de\u011fi\u015ftiren veya geni\u015fleten, ayn\u0131 zamanda kodun kendisini de\u011fi\u015ftirmek zorunda kalmadan yeni i\u015flevsellik eklemenizi sa\u011flayan g\u00fc\u00e7l\u00fc bir metaprogramlama arac\u0131d\u0131r. Bu makalede, Python decorator'lar\u0131n\u0131n temellerinden ileri d\u00fczey kullan\u0131mlar\u0131na, ger\u00e7ek d\u00fcnya senaryolar\u0131ndan kar\u015f\u0131la\u015fabilece\u011finiz zorluklara kadar her \u015feyi detayl\u0131 bir \u015fekilde inceleyece\u011fiz. Ad\u0131m ad\u0131m \u00f6rneklerle, decorator'lar\u0131n g\u00fcc\u00fcn\u00fc ve esnekli\u011fini ke\u015ffedece\u011fiz."}