я написал следующий класс и программа:Python, как применять классы правильно
class Coordinate(object):
def __init__(self,x,y):
self.x_coordinate = x
self.y_coordinate = y
class CoordinatRow(object):
def __init__(self):
self.coordinaterow = []
def add_coordinaterow(self, coordinate):
self.coordinaterow.append(coordinate)
def weave(self,other):
lijst = []
for i in range(len(self.coordinaterow)):
lijst.append(self.coordinaterow[i])
lijst.append(other.row[i])
coordinaterow = lijst
print coordinaterow
программа:
from Coordinates import Coordinate, CoordinatRow
from ipy_lib import file_input
'''functies'''
def split_and_add(invoer):
rij = invoer.split('=')
for line in rij:
process_row(line)
def process_row(line):
temp_coordinate_row = CoordinatRow()
rij = line.split()
for coordinate in rij:
coor = process_coordinate(coordinate)
temp_coordinate_row.add_coordinaterow(coor)
return temp_coordinate_row
def process_coordinate(coordinate):
idunno = coordinate.split(',')
return Coordinate(int(idunno[0]),int(idunno[1]))
'''programma'''
bestand = file_input()
split_and_add(bestand)
rows = split_and_add(bestand)
for row in rows:
row.weave(row)
вход выглядит следующим образом:
5,4 4,5 8,7=6,3 3,2 9,6 4,3=7,6=9,8=5,5 7,8 6,5 6,4
Ech строка seprated по =
. Я хочу переплетать каждую строку со следующей строкой следующим образом:
5.4, 4.5, 8.7 weave with 6.3, 3.2, 9.6, 4.3
5.4, 6.3, 4.5, 3.2, 8.7, 9.6, 4.3
и следующий ряд в эту новую строку.
Проблема заключается в том, как я применяю свои классы, я думаю. Я получаю эту ошибку:
for row in rows:
TypeError: 'NoneType' object is not iterable
Что здесь не так?
Проблемы вы ничего не возвращающаяся из 'split_and_add', поэтому строки - это None – user2097159
Я думаю, что вы хотите' yield process_row (line) 'в' split_and_add' функции. В противном случае вы возвращаете 'None' – GWW
, как я могу это решить? – Pieter