回答編集履歴
3
誤記
test
CHANGED
@@ -88,7 +88,7 @@
|
|
88
88
|
|
89
89
|
---
|
90
90
|
|
91
|
-
|
91
|
+
補足: ~~結論を言い忘れました。~~(じゃなくて...)C#のasをそのまままねするなら次のようにすべきと思います。
|
92
92
|
|
93
93
|
|
94
94
|
|
2
追記
test
CHANGED
@@ -83,3 +83,21 @@
|
|
83
83
|
|
84
84
|
|
85
85
|
決して「基底クラスの派生クラスでないものを無理やり派生クラスに改変する」ようなものではありません。全然目的が違うのです。
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
---
|
90
|
+
|
91
|
+
追記、結論を言い忘れました。ダウンキャストの目的を考えるならおそらく次のようにすべきと思います。
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
```Python
|
96
|
+
|
97
|
+
a = some_function() # AまたはAの派生のBのインスタンスを返すような関数
|
98
|
+
|
99
|
+
b = a if isinstance(a, B) else None
|
100
|
+
|
101
|
+
# もしaがBのインスタンスならbにはそのインスタンスが設定されそうでなければNoneが設定される
|
102
|
+
|
103
|
+
```
|
1
訂正
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
|
7
|
+
参照しておられるサイトは(大変失礼かつ生意気な言いようですが)Pythonの型システムの設計に踏み込んだ議論が不足していると思います。(スミマセン、元の記述は言い方がおかしかったので訂正しました)。
|
8
8
|
|
9
9
|
|
10
10
|
|