2010-06-15 17 views
10

मुझे किसी दिए गए मैट्रिक्स (सूचियों की सूची) को घुमाने के लिए फ़ंक्शन बनाने की आवश्यकता है, और मुझे इसे अपने Table कक्षा में उपयोग करने की आवश्यकता है। मुझे यह उपयोगिता फ़ंक्शन कहां रखा जाना चाहिए (जिसे rotateMatrixClockwise कहा जाता है) ताकि मैं इसे Table कक्षा में किसी फ़ंक्शन के भीतर आसानी से कॉल कर सकूं?मैं अपने पायथन परियोजना में उपयोगिता कार्यों को कहां रखूं?

उत्तर

4

यदि आप इसे Table कक्षा का सदस्य नहीं बनाना चाहते हैं तो आप इसे utilities मॉड्यूल में डाल सकते हैं।

11

तो वह एक स्थिर समारोह करें ...

  • @staticmethod डेकोरेटर
  • पहले तर्क के रूप में 'स्वयं' को शामिल नहीं करते जोड़ने

आपकी परिभाषा होगा:

@staticmethod 
def rotateMatrixClockwise(): 
    # enter code here... 

जो इसे कॉल करने योग्य बना देगा हर जगह आपको कॉल करके 'तालिका' आयातित:

table.rotateMatrixClockwise() 

डेकोरेटर अजगर है कि कोई अंतर्निहित पहला तर्क की उम्मीद है बताने के लिए केवल आवश्यक है। यदि आप विधि परिभाषाएं बनाना चाहते हैं जैसे सी #/जावा जहां स्वयं हमेशा निहित होता है तो आप '@classmethod' सजावट का भी उपयोग कर सकते हैं।

Here's the documentation for this coming directly from the python manual.

नोट: मैं क्योंकि वे आम तौर पर उल्लंघन करने वाले OOP की 'Single Responsibility Principle' केवल जहां उनके कोड एक मॉड्यूल को सीधे युग्मित नहीं किया जा सकता उपयोगिता वर्गों का उपयोग की सलाह देते हैं। यह लगभग वर्ग के लिए विधि/सदस्य के रूप में कक्षा की कार्यक्षमता को बांधने के लिए हमेशा सर्वोत्तम होता है।

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