回答編集履歴

1

追記

2018/07/22 10:40

投稿

LouiS0616
LouiS0616

スコア35658

test CHANGED
@@ -1,3 +1,17 @@
1
+ 同じリストにいろんなクラスのインスタンスを放り込むと非常に扱いにくいです。
2
+
3
+ **設計自体を見直した方が良いでしょう。**
4
+
5
+
6
+
7
+ いちおう、現状のまま解決する方法もご紹介します。
8
+
9
+
10
+
11
+ 型により分岐する方法
12
+
13
+ ---
14
+
1
15
  組み込み関数 [isinstance](https://docs.python.jp/3/library/functions.html#isinstance) で分岐すれば可能です。
2
16
 
3
17
  ```Python
@@ -74,6 +88,72 @@
74
88
 
75
89
 
76
90
 
77
- ですが、そもそも同じリストいろんなクスのンスタンスを放り込むと非常に扱いにくいで
91
+ メソッドを適切オーバーライる方法
78
92
 
93
+ ---
94
+
79
- **設計自体を見直した方がでしょう。**
95
+ > strメソッドの方が優先(?)されてしま
96
+
97
+
98
+
99
+ あるいは、`__str__`メソッドを自前で定義しても良いでしょう。
100
+
101
+ ```Python
102
+
103
+ class sub:
104
+
105
+ def getNumber(self):
106
+
107
+ return 42
108
+
109
+
110
+
111
+ def __str__(self):
112
+
113
+ return str(
114
+
115
+ self.getNumber()
116
+
117
+ )
118
+
119
+ ```
120
+
121
+
122
+
123
+ ```Python
124
+
125
+ import classes
126
+
127
+
128
+
129
+ ary = [
130
+
131
+ ['', '', '', '', '', '', ''],
132
+
133
+ ['', '', '', '', '', '', ''],
134
+
135
+ ['', '', '', classes.sub(), '', '', ''],
136
+
137
+ ['Friday', '', '', '', '', '', ''],
138
+
139
+ ['Saturday', '', '', '', '', '', '']
140
+
141
+ ]
142
+
143
+
144
+
145
+ for row in ary:
146
+
147
+ for elem in row:
148
+
149
+ print(elem, end=' ')
150
+
151
+
152
+
153
+ print()
154
+
155
+ ```
156
+
157
+
158
+
159
+ [Wandbox](https://wandbox.org/permlink/C5Em3FEu93wHhY8R)