質問編集履歴

4

update

2023/08/29 21:33

投稿

hoboki
hoboki

スコア52

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

2023/08/29 21:31

投稿

hoboki
hoboki

スコア52

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

2023/08/29 21:17

投稿

hoboki
hoboki

スコア52

test CHANGED
File without changes
test CHANGED
@@ -24,12 +24,11 @@
24
24
  ```
25
25
  結果
26
26
  ```
27
- Exception has occurred: NameError
27
+ Traceback (most recent call last):
28
- name 'decorator' is not defined
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

2023/08/29 21:15

投稿

hoboki
hoboki

スコア52

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 "z.py", line 55, in B
29
+ File "main.py", line 10, in B
30
30
  @decorator
31
- File "z.py", line 54, in <module>
31
+ File "main.py", line 15, in <module>
32
32
  class B(A):
33
33
  NameError: name 'decorator' is not defined
34
34
  ```