質問編集履歴
4
update
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
### 試したこと
|
36
36
|
デコレータの指定方法を変更すれば動きました。しかしこれがベストではない気がしています。
|
37
|
-
|
37
|
+
「ベストではない」と言ったのは、簡潔に言えば親クラス名を複数回書いているためにリファクタリングの観点から問題があると考えたからです。
|
38
38
|
また、decoratorメソッドをオーバーライドする必要がある際、@~も明示的に変更する必要が生じてしまいます。
|
39
39
|
```python
|
40
40
|
class A:
|
3
udpate
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,6 +34,8 @@
|
|
34
34
|
|
35
35
|
### 試したこと
|
36
36
|
デコレータの指定方法を変更すれば動きました。しかしこれがベストではない気がしています。
|
37
|
+
問題とは、簡潔に言えば親クラス名を複数回書いている点です。リファクタリングの観点から問題があると思います。
|
38
|
+
また、decoratorメソッドをオーバーライドする必要がある際、@~も明示的に変更する必要が生じてしまいます。
|
37
39
|
```python
|
38
40
|
class A:
|
39
41
|
def decorator(f):
|
2
update
test
CHANGED
File without changes
|
test
CHANGED
@@ -24,12 +24,11 @@
|
|
24
24
|
```
|
25
25
|
結果
|
26
26
|
```
|
27
|
-
|
27
|
+
Traceback (most recent call last):
|
28
|
-
|
28
|
+
File "main.py", line 9, in <module>
|
29
|
+
class B(A):
|
29
30
|
File "main.py", line 10, in B
|
30
31
|
@decorator
|
31
|
-
File "main.py", line 15, in <module>
|
32
|
-
class B(A):
|
33
32
|
NameError: name 'decorator' is not defined
|
34
33
|
```
|
35
34
|
|
1
update
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
### 実現したいこと
|
2
2
|
|
3
|
-
親クラス内のデコレータメソッドを子クラスで使用したいのですが、想定していたようにできません。
|
3
|
+
親クラス内のデコレータメソッドを子クラスで使用したいのですが、想定していたようにできません。どのように書くのが適切でしょうか?
|
4
4
|
|
5
5
|
### 該当のソースコード
|
6
6
|
|
@@ -26,9 +26,9 @@
|
|
26
26
|
```
|
27
27
|
Exception has occurred: NameError
|
28
28
|
name 'decorator' is not defined
|
29
|
-
File "
|
29
|
+
File "main.py", line 10, in B
|
30
30
|
@decorator
|
31
|
-
File "
|
31
|
+
File "main.py", line 15, in <module>
|
32
32
|
class B(A):
|
33
33
|
NameError: name 'decorator' is not defined
|
34
34
|
```
|