[解決済み] Rectangleクラスの作成【終了しました
2022-02-18 11:24:36
質問
私は本当にクラスをあまり理解していないので、何か手助けがあれば助かります。
Rectangle クラスは、以下のプライベートデータ属性を持つ必要があります。
-
__length
-
__width
Rectangleクラスには
__init__
メソッドで、これらの属性を作成し、1に初期化します。
-
set_length
- このメソッドは__length
フィールド -
set_width
- このメソッドは__width
フィールド -
get_length
- このメソッドは__length
フィールド -
get_width
- このメソッドは__width
フィールド -
get_area
- このメソッドは、Rectangleの面積を返します。 -
__str__
- このメソッドは、オブジェクトの状態を返します。
class Rectangle:
def __init__(self):
self.set_length = 1
self.set_width = 1
self.get_length = 1
self.get_width = 1
self.get_area = 1
def get_area(self):
self.get_area = self.get_width * self.get_length
return self.get_area
def main():
my_rect = Rectangle()
my_rect.set_length(4)
my_rect.set_width(2)
print('The length is',my_rect.get_length())
print('The width is', my_rect.get_width())
print('The area is',my_rect.get_area())
print(my_rect)
input('press enter to continue')
解決方法は?
には、いくつかの問題があります。
class
. 以下のコメントをご覧ください。
class Rectangle:
# Init function
def __init__(self):
# The only members are length and width
self.length = 1
self.width = 1
# Setters
def set_width(self, width):
self.width = width
def set_length(self, length):
self.length = length
# Getters
def get_width(self):
return self.width
def get_length(self):
return self.length
def get_area(self):
return self.length * self.width
# String representation
def __str__(self):
return 'length = {}, width = {}'.format(self.length, self.width)
クラスのテスト
>>> a = Rectangle()
>>> a.set_width(3)
>>> a.set_length(5)
>>> a.get_width()
3
>>> a.get_length()
5
>>> a.get_area()
15
>>> print(a)
length = 5, width = 3
他の人も指摘しているように、Pythonではメンバー変数はすべてパブリックなので、セッターとゲッターは余計なものです。あなたの課題ではこれらのメソッドが必要なのでしょうが、将来的にはその手間を省いて直接メンバにアクセスできるようになることを知っておいてください。
>>> a.length # Instead of the getter
5
>>> a.length = 2 # Instead of the setter
>>> a.length
2
関連
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み] Pythonで静的なクラス変数は可能ですか?
-
[解決済み] インスタンスのクラス名を取得する?
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] C++でクラスと構造体はいつ使い分けるべきか?
-
[解決済み】Javaで異なるクラスからプライベートフィールドの値を読み取る方法は?
-
[解決済み】Argparse: デフォルト値を'--help'に含める方法?
-
[解決済み] クラス内のプライベートフィールドを変更できないようにするにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
Pythonコンテナのための組み込み汎用関数操作
-
pythonを使ったオフィス自動化コード例
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
Pythonショートビデオクローラーチュートリアル
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】Python: OverflowError: 数学の範囲エラー
-
[解決済み] Pythonの@propertyデコレーターはどのように機能するのでしょうか?
-
[解決済み】Pythonの「private」メソッドは、なぜ実際にはprivateではないのですか?