回答編集履歴

3

誤記

2018/11/14 03:58

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -88,7 +88,7 @@
88
88
 
89
89
  ---
90
90
 
91
- 追記、結論を言い忘れました。ダウンキャスト目的考えるならおそらく次のようにすべきと思います。
91
+ 補足: ~~結論を言い忘れました。~~(じゃなくて...)C#asそのまままねするなら次のようにすべきと思います。
92
92
 
93
93
 
94
94
 

2

追記

2018/11/14 03:58

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

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

訂正

2018/11/14 03:55

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- 一方参照しておられるサイトは(大変失礼かつ生意気な言いようですが)ちょっとやってみた程度の内容であってPythonの型システムの設計をほとど何も考慮していない記事だと思います。
7
+ 参照しておられるサイトは(大変失礼かつ生意気な言いようですが)Pythonの型システムの設計に踏み込だ議論が不足していと思います。(スミマセン、元の記述は言い方がおかしかったので訂正しました)。
8
8
 
9
9
 
10
10