2012-05-09 14 views
5

में साइड इफेक्ट्स लागू करना क्या कोई ऐसा उपकरण है जो आपको "शुद्ध" के रूप में कार्यों/विधियों को एनोटेट करने में सक्षम बनाता है और फिर परीक्षण करने के लिए कोड का विश्लेषण करता है यदि कार्य/विधियां दुष्प्रभाव मुक्त हैं?पायथन

उत्तर

9

पायथन दुनिया में, सवाल बहुत अधिक समझ में नहीं आता है क्योंकि ऑब्जेक्ट्स में फ़ंक्शन कॉल में क्या होता है, इसमें बहुत कुछ कहता है।

उदाहरण के लिए, आप कैसे बता सकते हैं कि निम्न कार्य शुद्ध है या नहीं?

def f(x): 
    return x + 1 

जवाब निर्भर करता है क्या पर एक्स है:

>>> class A(int): 
     def __add__(self, other): 
      global s 
      s += 1 
      return int.__add__(self, other) 

>>> def f(x): 
     return x + 1 

>>> s = 0 
>>> f(A(1)) 
2 
>>> s 
1 

समारोह शुद्ध लग रहा है हालांकि, एक्स पर ऐड आपरेशन बढ़ाने की रों पक्ष प्रभाव है ।

+0

क्या आप * कर सकते हैं यह जांचना है कि 'f' शुद्ध है ** मानना ​​**' प्रकार (x) == int'। चूंकि पाइथन गतिशील रूप से टाइप किया गया है, इसलिए आपको टाइप एनोटेशन मैन्युअल रूप से जोड़ना होगा। – Robin

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

  • कोई संबंधित समस्या नहीं^_^