2010-07-29 19 views
23

मुझे आश्चर्य है कि कोई मॉड्यूल में सभी विधियों को कैसे सूचीबद्ध कर सकता है, लेकिन विरासत विधियों सहित नहीं।केवल मॉड्यूल में सूची विधियां?

उदाहरण के लिए।

module Software 
    def exit 
    puts "exited" 
    end 
end 

puts Software.methods 

न केवल बाहर निकलें, बल्कि सभी विरासत विधियों की सूची सूचीबद्ध करेगा।

बस बाहर निकलने के लिए सूची संभव है?

धन्यवाद

उत्तर

38

असल में Software.methods सूची exit नहीं होगा। Software.instance_methodsexit के साथ-साथ किसी भी विरासत विधियों की सूची देगा (जो इस मामले में कुछ भी नहीं है क्योंकि मॉड्यूल किसी भी विधि का वारिस नहीं करते हैं जबतक कि आप कोई अन्य मॉड्यूल शामिल न करें)। Software.instance_methods(false) केवल Software में परिभाषित विधियों की सूची देगा।

16
Software.public_instance_methods 

अपने उदाहरण के लिए काम करने के लिए लगता है।

संबंधित मुद्दे