python - Using a Class method/property outside of an instance variable -
मेरे पास निम्न वर्ग है:
वर्ग गोलाकार (ऑब्जेक्ट): def __init __ ( स्वयं, शॉर्टट, लोंगजी): स्वयं। शॉर्टकट = शॉर्टकट self.longax = longg self.alpha = self.longax / self.shortax @property def वॉल्यूम (स्व): रिटर्न (4 * np.pi / 3) * self.shortax * Self.shortax * self.longax बाद में कोड के एक टुकड़े में, मैं निम्नानुसार एक वॉल्यूम फ़ंक्शन का उपयोग करता हूं:
x = np.arange (5,8.5, डीएक्स) y = एनपी.रेंज (5,30, डीई) एक्स, वाई = एनपी। मेसेग्रिड (एक्स, वाई) जेड = वॉल्यूम (एक्स, वाई) वॉल फ़ंक्शन ठीक उसी तरह है जो @ प्रॉपर्टी के रूप में मैं अपनी कक्षा में परिभाषित किया है। इस कोड को काम करने के लिए, मुझे क्लास @ प्रॉपर्टी को कॉपी और पेस्ट करना पड़ता है और इसे इस तरह एक नियमित फ़ंक्शन में बदलना पड़ता है:
def vol (a, b): वापसी (4 * Np.pi / 3) * a * a * b मुझे हमेशा कहा गया था कि कोड कॉपी करना और चिपकाना यह एक संकेत है कि मैं कुछ गलत कर रहा हूं तो मेरा सवाल यह है, क्या कोई तरीका है कि मैं अपने वर्ग को फिर से डिज़ाइन कर सकता हूं ताकि मैं उस आवृत्ति @ प्रॉपर्टी / पद्धति को कॉल कर सकूं जो उस गोलाकार वर्ग में एक उदाहरण बनाए बिना परिभाषित करता है, ताकि जेड = वॉल्यूम (एक्स, वाई) काम करे?
धन्यवाद
मैं scott_fakename का पालन करेगा और इस तरह एक स्थिर विधि का उपयोग करेगा: <प्री> वर्ग गोलाकार (ऑब्जेक्ट): def __init __ (स्वयं, शॉर्टट, लोंगजी): स्वयं। शॉर्टकोड = शॉर्टकट self.longax = longg self.alpha = self.longax / self.shortax @property def वॉल (स्वयं): वापसी Spheroid.volume (self.shortax, self.longax) @staticmethod def वॉल्यूम (शॉर्टकट, लॉन्क्स): रिटर्न (4 * np.pi / 3) * शॉर्टकट * शॉर्टकैक्स * लॉन्जैक्स # बाहर के उदाहरण को कॉल करें इस स्पेलॉइड की तरह। वॉल्यूम (एक्स, वाई)
Comments
Post a Comment