2012-04-14 12 views
18

int.numerator और int.denominator मेरे लिए एक रहस्य है।पायथन: int.numerator और int.denominator क्यों मौजूद है?

help(int.numerator) कहता है:

एक तर्कसंगत संख्या की अंश में न्यूनतम मान

लेकिन जहाँ तक मुझे पता है, int एक तर्कसंगत संख्या नहीं है। तो ये गुण क्यों मौजूद हैं?

+3

जब पूर्णांक तर्कहीन संख्याएं हैं? – Wes

उत्तर

16

http://docs.python.org/library/numbers.html देखें - int (numbers.Integral) numbers.Rational का एक उप प्रकार है। जबकि इसके अंश मूल्य ही है

>>> import numbers 
>>> isinstance(1337, numbers.Integral) 
True 
>>> isinstance(1337, numbers.Rational) 
True 
>>> issubclass(numbers.Integral, numbers.Rational) 
True 

किसी पूर्णांक के हर से हमेशा 1 है।

PEP 3141 में आपको विभिन्न प्रकार के प्रकारों के कार्यान्वयन के बारे में विवरण मिलते हैं, उदा। पिछले कथन को साबित करना:

@property 
def numerator(self): 
    """Integers are their own numerators.""" 
    return +self 

@property 
def denominator(self): 
    """Integers have a denominator of 1.""" 
    return 1 
+1

मुझे नहीं लगता कि यह जवाब पूरी तरह से सही है। इसका तात्पर्य यह है कि आम तौर पर, संख्या वर्ग अंतर्निहित प्रकारों के समान होते हैं, जो मामला नहीं है। उन पंक्तियों के साथ चर्चा करने का एक सवाल यह है: क्यों नहीं तैरता संख्यात्मक और denominator है? –

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