0:00
आज के इस वीडियो में decorators के बारे में आपको बताऊंग�
0:02
decorators basically वो functions होते हैं जो कि दूसरे functions को change करके return करते है�
0:07
simply एक function है जो कि एक दूसरा function लेता है उसको थोड़ा बहुत update करके दुबारा से return कर देता ह�
0:12
exactly ये किस तरह से काम करते हैं एड दे रेट सिंटेक्स पाइथन में किस तरह से काम करता है इस वीडियो में हम लोग यही देखने वाले है�
0:17
चलते हैं कंप्यूटर स्क्रीन में लेट्स गेट स्टार्टिट तो जो सबसे पहला सवाल आप लोगों के दिमाग में आएगा वो यह आएग�
0:32
कि क्यों आप ऐसा करना चाहोगे मतलब डेकोरेटर्स को यूज क्यों करना चाहोगे आप ऐसा क्यों चाहोगे कि एक फंक्शन है वो एक फंक्शन रिटर्न कर रहा है मतलब इस सब के पीछे मोटिवेशन क्या होगा यह मैं आज आप लोगों को बताने वाला हूं सबसे पहले �
1:02
नेट में मैं कंसोल को यहां पतान कर दो और रेपोर्ट की एक बहुत बढ़िया बात यह लगती है कि यार कुछ भी मै�
1:06
यहां पर लिखो इसका आउटपुट यहां ट्यूटोरियल यहां वीडियो यहां तो एक लर्निंग एक्सपीज भी अच्छा रहेगा आपक�
1:11
और मैं तो बहुत सैटिसफाइड से और यहां पर देखो आप लोग की पाइथन डेट के बारे में आपको बताओ तो सबस�
1:19
पहले तो एक बहुत ही बेसिक सा फॉर्म चल लेंगे और यह मैं इस तरह से हेलो लिखूंगा आप लोग कहोगे कि यहां प�
1:25
हेलो और उसके बाद print hello word और फिर उसके बाद यहाँ पर इसी को invoke करक�
1:31
आप क्या सावित करना चाहते हो ये शायद आप लोग बोलोगे इसको run करके यहाँ पर hello word
1:35
आजाएगा ये दिखा कि क्या सावित करना चाहते हो तो मैं कहूँगा कुछ सावित तो नहीं करना चाता हू�
1:39
लेकिन आप लोग को एक चीज बताना चाता हूँ कि अगर मैं इस तरह से इसको रन करूँग�
1:43
तो hello word print होगा decorator क्या होता है यह आपको बताना चाता हूँ मान लो कि एक function ह�
1:49
ठीक है मैं उस function से चाहता हूँ कि वो function good morning कर�
1:54
और उसके बाद कुछ करके दे जैसे कि इसने directly मुझे hello word दे दिय�
1:58
मैं यह नहीं चाहता मैं कहता हूँ कि भाई यह function जो भी काम करे मुझे नहीं पता क्या कर रहा ह�
2:03
यह एक add नाम का function हो सकता है जो की print करेग�
2:06
a plus b, मुझे नहीं पता, यह return करेगा a plus b, लेकिन भा�
2:10
यह इजजद दे return करने से पहले लोगों को, जो भी इसको run करे, माल�
2:14
एक example दे रहूं मैं आप लोगों को कि क्या करें, इजजद दे लोगों को return करने स�
2:18
पहले, तो यह कुल मिलाकर मैं इससे चाहूँगा कि ये add करने से पहले good morning बोल�
2:22
और उसके बाद बोले thank you for using this function तो आप कहोगे कि यार ऐसा करना है तो add को modify कर ल�
2:28
लेकिन अब मालो आपके बास 125 functions है और आप चाहते ह�
2:32
हर function के run होने से पहले good morning run हो कोई भी run कर�
2:36
और उसके बाद जो है good night run हो या thanks for using this function run ह�
2:40
आप में से कई लोग कह सकते हैं यह सब्सक्राइब करेंगे हम अब लोग ऐड फंक्शन है मालो मैं इसमें ए�
2:50
ग्रीट नाम का �elsh लगाता हूं ठीक है इससे क्या होगा मुझे ग्रीट नाम का एक फंक्शन मनाना हो जो ए�
2:56
फंक्शन लेंगा और एक फंक्शन रिटर्न करेगा तो बेसिकली मैं क्या करा कुछ नहीं कर रहा हूं फंक्शन क�
3:01
मॉडिफाई कर रहा हूं सीधी बात न बगवास बोलता हूं डेकोडेटर से फंक्शन को मॉडिफाई करते हैं कैस�
3:07
function function as an input as an input simply print good morning
3:25
ठीक है, और इसके बाद इस function को run किया जाएगा, ठीक है, और मैं अगर ग्रीट अभी हटा देता हूँ
3:41
इस लाइन को जो कि गुड़ मॉर्निंग प्रेंट करेगी और इसके बाद यहां पर थैंक्स फॉर यूजिंग इस फंक्शन तो यहां प�
3:46
तो यहां पर फिर क्या होगा कि मैं इसको रिटर्न कर दूंगा इसी को रिटर्न एमएफेक्स को तो में इसको रिटर्न करने स�
4:03
क्या होगा कि जो यह फंक्शन हो जाएगा अब क्योंकि मैंने रिटर्न कर दिया यहां पर एमएफेक्स को अब मैं अगर को�
4:10
function run करूंगा, मानो मैं hello को, मैं decorate करता हूँ इस decorator से, इसका नम greet है
4:18
अगर मैं कुछ इस तरह से इसको decorate करता हूँ, और मैं hello को run करता हूँ, तो आप लोग देखो, जैसे ही मैं यहाँ पर hello को run करूँगा, तो क्या होगा, कि यह सबसे पहले तो मुझे good morning बोलेगा
4:27
और इसके बाद thanks for using this function बोलेगा और यह function तो run करेगा ही करेग�
4:31
actually यह कह रहा है name greet is not defined तो मुझे क्या करना पड़ेग�
4:34
कि इसको greet के बाद लिखना पड़ेगा ताकि यह जो है मिल जाए�
4:39
आप लोग देखो यहाँ पर good morning hello word और thanks for using this function
4:43
यहाँ पर आ गया तो यह काम किस तरह से कर रहा है, यह basically क्या कर रहा है, कि जो मेरा hello function है, उसको modify कर दे रहा है, hello के अंदर तो सिर्फ hello word लिखा था, लेकिन इसने क्या किया, guess index क्या कह रहा है, कह रहा है कि यार जो create है ना, वो एक decorator है, और hello को वो decorate कर रहा है, इनकी सजा रहा है, किस सिजा पर स�
5:14
फंक्शन ने ट्वाइट वीडियो और दिवार इन फंक्शन न्यू फंक्शन इस ऑफिंड फर्ट टू एस डेकोरेटिट फंक्शन दि�
5:19
बेसिक सिंटेक्स फॉर डेकोरेटर इस फॉलिंग यह अब जो डेकोरेटर फंक्शन होगा ना वह क्या करेगा वह रिटर्�
5:28
करेगा एक फंक्शन और क्या करेगा बिसीगली उस फंक्शन को लेकर उसको मॉडिफाइड करके रिटर्न कर देगा जैस�
5:34
इस केस में अगर मैंने यहां पर यह ऐसे किया है तो मैं बिसीगली क्या कर रहा हूं मैं हेलो यह करके हेल�
5:40
कर लूं या फिर मैं यह ना करूं तो मैं कुछ ऐसे कह सकता हूं मैं कहता हूं भाई ग्रीट को हेलो दो और उसक�
5:47
रन कर लो फिर समझ रहा था यह भी यह भी चीज करेगा ग्रीट को हेलो पकड़ा हो और इसको रन कर लो तो यह करने क�
5:54
एक आसान तरीका है बस यह कि भाई इसी को डेकोरेट कर लो ना ताकि इसको जब भी चलाया जाए इसको ऐसे क�
6:02
ऐसे रखो और आपको क्या मिलेगा आपको यह वाला सिंटेक्स ऑटोमाटिकली मिल जाए यह लगाने से इस बात प�
6:08
विचार करो रुको देखो जो मैंने बोला एक बार और सुनो इस बात को अगर digest नहीं हो रह�
6:12
कुछ चीज़ें एक बार में digest नहीं होती है क्योंकि बहुत सारे लोग मुझसे कहते हैं कि यार हमें यार ये चीज़ समझ नहीं आया ये आपने जो बोल�
6:17
कfield ने पड़ता है इसमें ने पड़ता है चीजों को यह उनमें से एक चीज है देखो क्या किया मैंने एक तो यह कर सकत�
6:39
अगर मैंने at the rate grid नहीं लगाया तो मुझे कोई जिस तरह से करना पड़ेगा, readability कम दिक्कते होंगी, ठीक है
6:45
अब एक practical use case मैंने यहाँ पर दिया हुआ है, आप लोग को वो दिखाना चाहता हूँ कि, क्या हो रहा है यहाँ पर
6:50
practical use case क्या है, एक logging का use case है, जो कि मैंने यहाँ पर दिखाया हुआ है कि कभी भी आपको लॉगिंग करनी ह�
6:55
और आपको ऐसे functions को run करना है जो कि argument पास करते है�
6:59
जैसे कि add a, b अगर आप add a, b को decorate करने की कोशिश करोगे greet स�
7:03
तो आपको आने वाली है दिक्कत क्योंकि हमने क्या किया add तो दे दिय�
7:08
लेकिन add के arguments नहीं दिये हैं अभी तक, तो यहाँ पर क्या होगा कि जब मैं कुछ इस तरह से लिखूंगा, यानि कि मैं अगर मान लो यह इस पर greet नहीं लगाता हूँ, और मैं कुछ इस तरह से लिखता हूँ, मैं इस line को ज़रा copy कर लेता हूँ, ताकि अगर मैं सिर्फ यहा�
7:38
यहाँ है mfx, जिसके वज़े से मुझे error definitely देखने को मिलेगा
7:42
तो इस problem को solve करने के लिए हम क्या करेंगे, हम कहेंगे यार कि अगर कोई भी arguments हैं
7:46
तो मैं यहाँ पर लिखूंगा star args, और star star quarks, जिसके बारे में हम already पढ़ चुके हैं
7:52
और क्या होते है star args, star args basically आपके जितने भी arguments हैं उनको लेने का तरीका ह�
7:57
as a tuple और ये as a dictionary सारे arguments को लेने का तरीका ह�
8:02
key value pairs के तौर पर ठीक है I hope कि आप समझ गए इस चीज़ क�
8:05
अब देखो यहाँ पर args और quarks मुझे मिल गए अब जब मैं FX को run कर रहा हूँ तो करूँग�
8:11
आर्क्स और क्वार्क्स के साथ ठीक है इस तरह से और जब मै�
8:17
return करूँगा इसको MFX को तो मैं ऐसे के ऐसे ही return कर दूँग�
8:21
अब मैं अगर इसको चलाऊँगा तो आप लोग देखो मैंने कहा greet add 1,2
8:25
तो इसने good morning किया, 3 दिया और फिर ये दिया, ठीक है? तो जब भी arguments होते हैं किसी भी function में तो ये तरीका होता है करने का
8:32
और इस example को आप लोग जरूर पढ़ना, लॉगिंग module क्या होता है? वैसे कली logs console पर देखने के काम आता है
8:38
आप अगर logs कहीं पर भी देखना चाहते हो console पर या फिर मारलो आप logs को transmit करना चाहते हो over network
8:44
आप use कर सकते हो logging को ठीक है तो I hope कि यह चीज समझ में आया ह�
8:48
और फिर आप क्या कर सकते हो ना इसमें logging में एक चीज और होती है कि आप logging levels define कर सकते हो जैसे क�
8:53
debug एक level होगी info एक level होगी error एक level होग�
8:57
तो आप कितनी granular info देखना चाहते हो वो आप देख पाऊगे ठीक ह�
9:01
I hope आपको इस चीज समझ में आ रही है अब देखो in this example the log function called decorator
9:06
takes a function as an argument and returns a new function that logs the function called
9:10
before and after the original function is called तो यहाँ पर हमने simply
9:14
log function called एक decorator लगाया और उसने इतना सारा काम free में करके दे दिय�
9:18
तो ये function जो log function call है वो हमें एक बार लिखना पड़ेगा और हमें automatically क्या होग�
9:23
यहाँ पर decorated function देखने को मिल जाएगा तो basically syntax क्या है यही ह�
9:29
यह कर रहा है अगर मैं यहाँ पर at the rate greet लिख दू अभी और इसके बाद मैं ऐसो comment out करक�
9:35
add 1,2 करूँ तो बात भी है एकी बात है आप ऐसे कर लो greet लगा क�
9:41
greet greet decorate function normally call normally call decorate
9:55
नॉर्मली कोल करना चाहूंगा हां जो बिकेनर्स है वह यह मुझसे जरूर कह सकते हैं कि यार मैं ऐसे ही ठीक हू�
10:00
मैं ऐसे ही ठीक हूं बता सबसे बड़ी प्रॉब्लम क्या होती है इनसान के साथ मैं ऐसे ठीक हूं नहीं हो आप ऐसे ठी�
10:05
अगर आप ऐसे ठीक होते, देखो अगर आपको ऐसे ही रहना है ना, ऐसे ही रहो, कुछ change मत करो अपने बारे में, अपने मेहनत में कुछ change मत करो, अपने lifestyle में कुछ change मत करो, आपकी lifestyle में कुछ change नहीं आएगा, जैसे है वैसी रहेगा, ठीक है, लेकिन changes लाओगे the way you write code, the way you live your life
10:35
नहीं मिलें अब आपके ऊपर आपको वह रिजल्ट देखने जो कि लाइफ में आपको कभी नहीं मिले या फिर आपको नहीं देखन�
10:41
या आपके हाथ में ठीक है तो यह डेकोरेटर सब थोड़ा सा पिंच ऑफ मोटिवेशन भी आ गया इस टोटोरियल में लेकि�
10:48
डेकोरेट इस काफी पावरफुल है फ्लेक्सिबल है और मजा आता है यार यूज करने में और यह जो नोट में लिख रहा हूं आ�
10:55
लोगों के लिए यार इसको प्लीज इंग्नॉर्न मत करना कि काफी मेहनत से लिख रहा हूं ठीक है तो जरूर इसको आप लो�
11:00
बड़े इस पर मेहनत करें यह कोड आप यहां से क्लिक करें कॉपी कर सकते हो यहां रैपल में पेश करके चला सकत�
11:06
हो चलाओ मेहनत करो ठीक है बहुत इजी है मैं बिलीव मी जब मैंने स्टार्ट की यह सब चीजें सीखना अगर इ�
11:14
जो कि कोई रिसोर्स होती ना तो मैं कुछ भी करके इस रिसोर्स को अपनाता कैसे भी करके मैं सीखता मैंने ज�
11:21
स्टार्ट के जगह जब रिसोर्स थी नहीं लिमिटेट छोड़ो थी नहीं ठीक है आप बुक लो आप पांच यह फिगर आउट कर�
11:29
उनमें से फिर आपका एक साल लग जाएगा यह फिर आउट करने में कौन सा यह कौन सा कलत है और जब तक आपको पत�
11:35
चलेगा क्या सही क्या कर लेते हैं साल आपका बीच चुका होगा वह सब नहीं है आपको सीधा सच्चा रूट यहां प�
11:40
पर यहां पर फाइदे मिलो यार उसका फाइदा उठाओ एक बात और बताना चाहूंगा क्योंकि सवाल बार-बार आ रहे हैं क�
11:49
जब भी मैं कोई रेपल देता हूं तो आपको कैसे यूज करना यार आप क्या करो ना कि यहां पर वाव मेरे 41.6 क�
11:56
पर रेपोर्ट पर है चस्ट रिलाइज सैंग्यू गाइस जिसने फॉलों या थैंक यू सो मच तो यहां पर अगर हम फो�
12:02
रैपल करेंगे ना तो आपको यहां पर इस रैपल का फोक मिले यह फोक होकर मिल जाएगी रैपल आपको और उसके बा�
12:08
यहां पर जो कोड वगैरह है इसको चला सकते हो ठीक है आप इसको अपना आराम से यूज में ले सकते हो तो अभी क�
12:14
लिए इस वीडियो में इतना है कि आप लोगों को मजा आया डेकोरेटर समझ में आएगा आपने अभी तक यह एंडर डे�
12:19
अपने playlist को access नहीं किया तो इसको जरूर कर लेना वाव वी जस्ट फ्रॉस्ट वन मिलियन व्यूज मैंने अभी देख�
12:24
अब काफी बढ़िया चल रहा है और काफी आपका जोश देखकर ना मेरा जोश भी बढ़ रहा है इसी वजह से अभी तक एक दि�
12:31
नहीं किया है मैंने हम लोग लगातार कर रहे हैं Christmas, New Year, enjoy कर रहे है�
12:35
100 days of code चल रहा है क्योंकि 100 days of code हमारा enjoyment है सब कुछ चल रहा है साथ सा�
12:39
ठीक है तो अभी के लिए इस वीडियो में इतना है guys thank you so much guys for watching this video
12:43
and I will see you next time करते है�