2012-01-11 13 views
5

में एक तर्क के रूप में स्वयं को गुजर रहा है मैं कक्षा के साथ काम कर रहा हूं और कक्षा के भीतर से एक सहायक विधि को कॉल करने की कोशिश कर रहा हूं। मुझे काम करने के लिए निम्नलिखित कोड मिल गया है, लेकिन मुझे यकीन नहीं है कि मुझे हेल्पर फ़ंक्शन के लिए तर्क के रूप में "स्वयं" क्यों पारित करना होगा जब मैं इसे कॉल करता हूं जब मेरे पास पहले से ही "स्वयं" विधि में तर्क के रूप में होता है। क्या कोई कारण है कि मुझे इसे एक तर्क के रूप में पास करना होगा जब मैं फ्रीक्वेंसी को कॉल करता हूं .__ सहायक (स्वयं, रिकॉर्ड) नीचे दिए गए उदाहरण में?एक सहायक विधि

धन्यवाद!

class Frequency: 

    def __init__(self, record): 
     self.record = record 

    def __helper(self, datalist) 
     do something to datalist... 

    def getFreq(self): 
     allrec = self.record 
     record = allrec[1].split(' ') 
     var = Frequency.__helper(self, record) 
     return var 

उत्तर

2

विधि कॉल करने के सही तरीके से सिर्फ

var = self.__helper(record) 

कि एक ही बात करता है, लेकिन एक अधिक सहज फैशन में है।

2

हां, इस मामले में आपको यह करना होगा, क्योंकि आप फ़ंक्शन को @staticmethod के रूप में घोषित नहीं कर रहे हैं। जब कोई विधि स्थिर नहीं होती है, तो इसे पास करने के लिए एक उदाहरण की आवश्यकता होती है।

आप की तरह कुछ करते हैं:

class Frequency: 
    @staticmethod 
    def test(datalist): 
     pass 

आप तर्क सूची में स्वयं को परिभाषित करने की आवश्यकता नहीं किया जाएगा।

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