I 분수 (예를 들어, (1,2), (3,4) 등)와 함께 작동이 클래스가 있습니다파이썬 하위 클래스
class Fraction(object):
def __init__(self, num=0, denom=1):
''' Creates a new Fraction with numberator num and denominator denom'''
self.numerator = num
if denom != 0:
self.denominator = denom
else:
raise ZeroDivisionError
def __str__(self):
'''Returns the string numerator/denominator '''
return "{0}/{1}".format(self.numerator, self.denominator)
def __repr__(self):
"""blah"""
return Fraction(self.numerator, self.denominator)
가 내가 하위 클래스 혼합 된 번호가 할 정수와 분수 (예 : 2 분수 (1,2), 3 분수 (3,4) 등)를 모두 받아 들일 수 있습니다. 나는 제공 Fraction
클래스와 MixedNumber
클래스를 구현 생각하면 바로 떠오르는 두 가지 방법이
class MixedNumber(Fraction):
'MixedNumber'가'Fraction'에서 상속받는 것은 당연하다고 생각하지 않습니다. 'MixedNumber' 클래스에'Fraction'을 * 작성하는 것이 더 합리적 일 것입니다. –
@HunterMcMillen에 동의하지만 레코드 끝에 대해서는 게시물의 마지막에 사용하는 구문이 Python에서 상속하기에 적합합니다. 어쩌면 당신이 묻고있는 것이거나 당신이 직면하고있는 문제를 이해하지 못할 수도 있습니다. 분명히 해줄 수 있니? – jpmc26
서브 클래스는 항상 'is a'관계를 의미합니다. 그래서'MixedNumber'는'Fraction'으로부터 상속 받기에 적합하지 않습니다. – zhangyangyu