From 266d23e620181f14bae06be3f9b8a29c9b6cf0f5 Mon Sep 17 00:00:00 2001 From: silksnow Date: Wed, 7 Oct 2026 00:02:53 +0800 Subject: [PATCH] hard q30: add solution png and correct code --- q30/q30.png | Bin 0 -> 33133 bytes q30/shapes.py | 16 ++++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 q30/q30.png diff --git a/q30/q30.png b/q30/q30.png new file mode 100644 index 0000000000000000000000000000000000000000..326a0cc97372d63d4cb4de383984afca046c2cae GIT binary patch literal 33133 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�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 literal 0 HcmV?d00001 diff --git a/q30/shapes.py b/q30/shapes.py index 8afa14f..76b2e0a 100644 --- a/q30/shapes.py +++ b/q30/shapes.py @@ -1,14 +1,22 @@ class Shape: def area(self): - return 0 + return class Circle(Shape): + def __init__(self, r): + self.r = r + def area(self): - return 3.14 * r * r + return 3.14 * self.r * self.r class Square(Shape): + def __init__(self, side): + self.side = side + def area(self): - return side * side + return self.side * self.side if __name__ == '__main__': - \ No newline at end of file + shapes = [Circle(3), Square(5)] + for s in shapes: + print(s.area()) \ No newline at end of file