-1
タスクは、 'Shape'という名前のクラスとそのサブクラス 'Square'を定義することです。 Squareクラスには、与えられた長さを引数として取る 'init'関数があります。両方のクラスには、シェイプの領域がデフォルトで0であるシェイプの領域を印刷できる領域関数があります。Pythonでサブクラスとスーパークラスを使用してこのタスクを完了する方法がわからない
これは私が現時点で持っているものです。
class Shape:
area = 0
def __init__(self, ??):
class Square(Shape):
def __init__(self, length):
self.length = length
def area(self):
a = (self.length * self.length)
print('The area of a square with a side length of %f is %f' % (self.length, a))
s = Square(2)
s.area()
私はシェイプスーパークラスで何をすべきかがわからないと思います。
Shapeは抽象クラスでなければなりません。その場合、抽象的な領域のメソッドを定義することができます。その後、サブクラスの実装を提供します。 – MeterLongCat
スーパークラスに 'print_area(self)'メソッドを持たせることをお勧めします。このメソッドは、フィールド領域を表示し、サブクラスの '__init__'メソッドで初期化し、上書きする機能はありませんサブクラス内の領域 – Chris
_ "どちらのクラスも領域関数を持っています" _ 'area = 0'は関数ではありません。あなたはそれを修正することから始めることができます。 –