回答編集履歴

5

追記

2017/11/17 06:28

投稿

LouiS0616
LouiS0616

スコア35658

test CHANGED
@@ -128,13 +128,13 @@
128
128
 
129
129
  def main():
130
130
 
131
- print(my_dir(object))
131
+ print(my_dir(object()))
132
132
 
133
- print(my_dir(Creature))
133
+ print(my_dir(Creature()))
134
134
 
135
- print(my_dir(Dog))
135
+ print(my_dir(Dog()))
136
136
 
137
- print(my_dir(Chihuahua))
137
+ print(my_dir(Chihuahua()))
138
138
 
139
139
 
140
140
 
@@ -148,11 +148,11 @@
148
148
 
149
149
  []
150
150
 
151
- ['printAttr']
151
+ ['attr', 'printAttr']
152
152
 
153
- ['printAttr', 'printHave']
153
+ ['have', 'printAttr', 'printHave']
154
154
 
155
- ['printAttr', 'printHave', 'printSkill']
155
+ ['printAttr', 'printHave', 'printSkill', 'skill']
156
156
 
157
157
  """
158
158
 

4

追記

2017/11/17 06:28

投稿

LouiS0616
LouiS0616

スコア35658

test CHANGED
@@ -78,4 +78,88 @@
78
78
 
79
79
  ---
80
80
 
81
+ **ちょっとした実験コード**
82
+
83
+ ```Python
84
+
85
+ def my_dir(instance):
86
+
87
+ """プライベートでないdir"""
88
+
89
+ return [elem for elem in dir(instance) if elem[:2] != '__']
90
+
91
+
92
+
93
+ class Creature(object):
94
+
95
+ def __init__(self):
96
+
97
+ self.attr = '食事する'
98
+
99
+ def printAttr(self):
100
+
101
+ print('生物は' + self.attr)
102
+
103
+
104
+
105
+ class Dog(Creature):
106
+
107
+ def __init__(self):
108
+
109
+ self.have = '尻尾'
110
+
111
+ def printHave(self):
112
+
113
+ print('犬には' + self.have + 'がある')
114
+
115
+
116
+
117
+ class Chihuahua(Dog):
118
+
119
+ def __init__(self):
120
+
121
+ self.skill = 'お座り'
122
+
123
+ def printSkill(self):
124
+
125
+ print('チワワの特技は' + self.skill)
126
+
127
+
128
+
129
+ def main():
130
+
131
+ print(my_dir(object))
132
+
133
+ print(my_dir(Creature))
134
+
135
+ print(my_dir(Dog))
136
+
137
+ print(my_dir(Chihuahua))
138
+
139
+
140
+
141
+ if __name__ == '__main__':
142
+
143
+ main()
144
+
145
+
146
+
147
+ """実行結果
148
+
149
+ []
150
+
151
+ ['printAttr']
152
+
153
+ ['printAttr', 'printHave']
154
+
155
+ ['printAttr', 'printHave', 'printSkill']
156
+
157
+ """
158
+
159
+ ```
160
+
161
+
162
+
163
+ ---
164
+
81
165
  課題2に関しては、問題設定がちょっとよくわかりません。

3

修正

2017/11/17 06:24

投稿

LouiS0616
LouiS0616

スコア35658

test CHANGED
@@ -1,6 +1,6 @@
1
1
  このような場合、親クラスの`__init__`メソッドを明示的に呼び出さねばいけません。
2
2
 
3
- インスタンス変数継承されないからです。
3
+ インスタンス変数継承されていないから(というか定義されていないから)です。
4
4
 
5
5
  ```Python
6
6
 

2

追記

2017/11/17 06:10

投稿

LouiS0616
LouiS0616

スコア35658

test CHANGED
@@ -1,4 +1,6 @@
1
1
  このような場合、親クラスの`__init__`メソッドを明示的に呼び出さねばいけません。
2
+
3
+ インスタンス変数は継承されないからです。
2
4
 
3
5
  ```Python
4
6
 
@@ -71,3 +73,9 @@
71
73
  """
72
74
 
73
75
  ```
76
+
77
+
78
+
79
+ ---
80
+
81
+ 課題2に関しては、問題設定がちょっとよくわかりません。

1

修正

2017/11/17 06:08

投稿

LouiS0616
LouiS0616

スコア35658

test CHANGED
@@ -1,4 +1,4 @@
1
- Pythonでは、親クラスの`__init__`メソッドを明示的に呼び出さねばいけません。
1
+ このような場合、親クラスの`__init__`メソッドを明示的に呼び出さねばいけません。
2
2
 
3
3
  ```Python
4
4