これが私の全体的な指示です
0 から 255 の範囲の整数値を使用して RGB カラーを表す Color クラスを記述します。 クラスは次の条件を満たしている必要があります。これらの値 赤、緑、青のチャンネルの値を返す public メソッドを提供します
PPM 画像を表す PortablePixmap クラスを記述します。クラスは次の条件を満たしている必要があります: image.py に配置する マジック ナンバー、幅、高さ、最大色値、およびクライアントからのピクセル データを受け取り、それらの値を格納するコンストラクタを提供する ピクセル データをリスト (またはリストのリスト) として格納するof) Color オブジェクト PPM 画像の文字列表現を返す public メソッドを提供する
PPM 画像ファイルを開き、その内容を読み取り、その内容を保持する PortablePixmap オブジェクトを返す read_ppm 関数を作成します。関数は次の条件を満たす必要があります: image.py に配置する PPM 画像ファイルの内容を読み取る PPM 画像ファイルのフォーマットに依存しない 期待されるピクセル数と提供されたピクセル数が異なる場合はエラーで終了する
read_ppm 関数をテストするメイン関数を作成します。関数は main.py に配置する必要があります
これは私がこれまでに持っているものです
class Color:
# constructor takes in values from client and stores them
def __init__(self, red, green, blue):
# checks that type of arg == int: raises exception otherwise
if (isinstance(red, int) and isinstance(green, int) and isinstance(blue, int)):
print("good stuff, indeed integers")
else:
raise TypeError("Argument must be an integer.")
# checks if values are between 0 and 225
if red < 0 or red > 225:
print("0 < rgb values < 225")
elif green < 0 or green > 225:
print("0 < rgb values < 225")
elif blue < 0 or blue > 225:
print("0 < rgb values < 225")
# instance variables (RGB values)
self._red = red
self._green = green
self._blue = blue
# methods that reuturn RGB values
def returnRed(self):
return self._red
def returnGreen(self):
return self._green
def returnBlue(self):
return self._blue
'''class that represents a PPM image'''
class PortablePixmap:
def __init__(self, magic_number, width, height, max_color_value, pixel_data):
self._magic_number = magic_number
self._width = width
self._height = height
self._max_color_value = max_color_value
self._pixel_data = pixel_data
def __str__(self):
s = self._magic_number
s += '\n' + str(self._width)
s += ' ' + str(self._height)
s += '\n' + str(self._max_color_value)
for pixel in self._pixel_data:
s += ' ' + str(pixel[0])
s += ' ' + str(pixel[1])
s += ' ' + str(pixel[2])
return s
明確にするためにいくつか質問があります.. 1. Color クラスを正しく作成しましたか? 2.そのクラスで例外を発生させる必要さえありますか? 最終的には、すべてを順番に含むファイルから読み取りますが、必ずしもそれ自体の個別の行にあるとは限りません。
これについて正しく行っているかどうかを本当に知りたいだけです。手順は段階的に見えますが、すべてがどのように接続されているかをよく理解していないので、やりすぎているか少なすぎているのではないかと心配しています.
前もって感謝します