गतिशील मेथड परिभाषा
define_method और method_missing का उपयोग करके मेथड को गतिशील रूप से परिभाषित करना और कॉल करना सीखिए
गतिशील मेथड परिभाषा, CoddyKit पर Ruby Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Ruby Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Ruby Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
विधियाँ गतिशील रूप से बनाना
गतिशील विधि परिभाषा
रूबी में रनटाइम के दौरान विधियाँ गतिशील रूप से बनाई जा सकती हैं।
इससे कोड अधिक लचीला और पुनः उपयोग योग्य बनता है।

define_method का उपयोग
define_method विधि आपको विधियाँ गतिशील रूप से परिभाषित करने देती है।
class Person
define_method(:greet) { puts 'Hello!' }
end
p = Person.new
p.greetdefine_method का पैरामीटर के साथ उपयोग
आप गतिशील रूप से बनाई गई विधियों को तर्क दे सकते हैं।
class Person
define_method(:greet) { |name| puts "Hello, #{name}!" }
end
p = Person.new
p.greet('Alice')method_missing का उपयोग
method_missing विधि अपरिभाषित विधियों को की गई कॉल को रोककर सँभालती है।
class Person
def method_missing(name, *args)
puts "Method '#{name}' is missing!"
end
end
p = Person.new
p.unknown_methodmethod_missing को गतिशील रूप से सँभालना
लचीली विधि-प्रबंधन व्यवस्था बनाने के लिए आप method_missing का उपयोग कर सकते हैं।
class DynamicPerson
def method_missing(name, *args)
if name.to_s.start_with?('say_')
puts "You asked me to say: #{name.to_s.split('_')[1..-1].join(' ')}"
else
super
end
end
end
p = DynamicPerson.new
p.say_hello_worldrespond_to_missing? को बदलना
विधियों की जाँच ठीक से सँभालने के लिए respond_to_missing? को बदल दीजिए।
class DynamicPerson
def method_missing(name, *args)
if name.to_s.start_with?('say_')
puts "Saying: #{name.to_s.split('_')[1..-1].join(' ')}"
else
super
end
end
def respond_to_missing?(name, include_private = false)
name.to_s.start_with?('say_') || super
end
end
p = DynamicPerson.new
puts p.respond_to?(:say_hello)गतिशील गुण पढ़ने और निर्धारित करने के लिए method_missing का उपयोग
आप method_missing का उपयोग करके गतिशील गुण बना सकते हैं।
class DynamicPerson
def initialize
@data = {}
end
def method_missing(name, *args)
attribute = name.to_s.sub(/=$/, '')
if name.to_s.end_with?('=')
@data[attribute] = args.first
else
@data[attribute]
end
end
end
p = DynamicPerson.new
p.name = 'Alice'
puts p.namemethod_missing के सुरक्षा जोखिम
method_missing का अनुचित उपयोग जोखिम पैदा कर सकता है:
- अज्ञात विधियों को सँभालते समय अप्रत्याशित व्यवहार।
- विधियों को अत्यधिक खोजने के कारण संभावित प्रदर्शन संबंधी समस्याएँ।
- उपयोगकर्ता के प्रवेश डेटा के साथ मिलाने पर सुरक्षा कमजोरियाँ।
गतिशील विधियों का पुनरावलोकन
बधाई हो!
आपने रूबी में विधियों को गतिशील रूप से परिभाषित करना और बुलाना सीख लिया है।
अब आप खुले वर्गों और रनटाइम संशोधन का अध्ययन करेंगे।

एआई शिक्षक के साथ Ruby सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 29
- पाठ
- 109
अक्सर पूछे जाने वाले प्रश्न
क्या “गतिशील मेथड परिभाषा” पाठ निःशुल्क है?
हाँ — Ruby Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “गतिशील मेथड परिभाषा” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Ruby Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“गतिशील मेथड परिभाषा” में मैं क्या सीखूँगा?
define_method और method_missing का उपयोग करके मेथड को गतिशील रूप से परिभाषित करना और कॉल करना सीखिए आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Ruby Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Ruby Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Ruby Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“गतिशील मेथड परिभाषा” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Ruby Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Ruby Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- मेटाप्रोग्रामिंग क्या है?
- गतिशील मेथड परिभाषा
- ओपन क्लास और मंकी पैचिंग
- send और eval का उपयोग