두 클래스 Pair
및 Sequence
이 있습니다. Pair
개체에는 position과 value의 두 가지 특성이 있습니다. Sequence
개체는 Pair
개체의 시퀀스입니다.다른 입력 인수가 전달 될 때 기본 클래스 객체 만들기
>>> Sequence([Pair(0, 2), Pair(2, 8), Pair(3, 1))
< Seq. 2 8 1 >
>>> Sequence.pairs
[< Position: 0, Value: 2 >,
< Position: 2, Value: 8 >,
< Position: 3, Value: 1 >]
가 어떻게 아래의 코드처럼 만 Pair
값 목록을 제공하는 Sequence
개체를 만들 수 있습니다 :
class Pair():
def __init__(self, position, value):
self.position = position
self.value = value
self.pair = (position, value)
def __repr__(self):
return "< Position: {0}, Value: {1} >".format(self.position, self.value)
class Sequence(Pair):
def __init__(self, pairs):
self.pairs = pairs
self.cseg = [pair.value for pair in pairs]
self.positions = [pair.position for pair in pairs]
def __repr__(self):
return "< Seq. {0} >".format(" ".join([str(x) for x in self.cseg]))
나는이와 Sequence
개체를 만들 수 있습니까? 이 경우 Pair
위치는 0에서 n - 1까지의 시퀀스 여야하며 여기서 n은 Sequence
의 길이입니다.
>>> Sequence([2, 8, 1])
< Seq. 2 8 1 >
>>> Sequence.pairs
[< Position: 0, Value: 2 >,
< Position: 1, Value: 8 >,
< Position: 2, Value: 1 >]
이 버전의 Sequence
을 사용하려고했지만 작동하지 않았습니다. 그렇지 않으면 단순히 self.pairs
에 Pair
개체의 주어진 목록을 지정합니다, 다음은 당신이 비 Pair
개체 목록에 전달하는 Pair
개체의 목록을 생성합니다
AttributeError: 'int' object has no attribute 'value'
class Sequence(Pair):
def __init__(self, pairs):
if not isinstance(pairs[0], Pair):
self = Sequence([Pair(pos, val) for pos, val in enumerate(pairs)])
self.pairs = pairs
self.cseg = [pair.value for pair in pairs]
self.positions = [pair.position for pair in pairs]
def __repr__(self):
return "< Seq. {0} >".format(" ".join([str(x) for x in self.cseg]))