2012-04-14 26 views
18

int.numeratorint.denominator là một bí ẩn đối với tôi.Python: Tại sao int.numerator và int.denominator tồn tại?

help(int.numerator) trạng thái:

tử số của một số hợp lý trong điều kiện thấp nhất

Nhưng như xa như tôi biết, int không phải là số hợp lý. Vậy tại sao các thuộc tính này tồn tại?

+3

Vì khi nào là số nguyên số nguyên? – Wes

Trả lời

16

Xem http://docs.python.org/library/numbers.html - int (numbers.Integral) là loại phụ của numbers.Rational.

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

Mẫu số của int luôn là 1 trong khi tử số của nó là giá trị.

Trong PEP 3141 bạn tìm thấy chi tiết về việc triển khai các loại số khác nhau, ví dụ: chứng minh tuyên bố trước:

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

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

Tôi không nghĩ câu trả lời này là hoàn toàn chính xác. Nó ngụ ý rằng nói chung, các lớp chữ số giống hệt với các kiểu dựng sẵn, mà không phải là trường hợp. Một câu hỏi để thảo luận dọc theo các dòng đó là: Tại sao float không có tử số và mẫu số? –

Các vấn đề liên quan