回答編集履歴
1
追記
test
CHANGED
@@ -25,6 +25,22 @@
|
|
25
25
|
mod = make_file_operation(lambda p: print(f'{p}の要素を修正'))
|
26
26
|
|
27
27
|
del_ = make_file_operation(lambda p: print(f'{p}の要素を削除'))
|
28
|
+
|
29
|
+
```
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
**追記**:
|
34
|
+
|
35
|
+
コメントでactorbugさんがご指摘のように、デコレータを使った方が読み良いです。
|
36
|
+
|
37
|
+
```Python
|
38
|
+
|
39
|
+
@make_file_operation
|
40
|
+
|
41
|
+
def add(p):
|
42
|
+
|
43
|
+
print(f'{p}に要素を追加')
|
28
44
|
|
29
45
|
```
|
30
46
|
|
@@ -82,6 +98,30 @@
|
|
82
98
|
|
83
99
|
|
84
100
|
|
101
|
+
**追記**:
|
102
|
+
|
103
|
+
contextlibなんてものもあります。簡潔に書けて便利。
|
104
|
+
|
105
|
+
```Python
|
106
|
+
|
107
|
+
import contextlib
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
@contextlib.contextmanager
|
112
|
+
|
113
|
+
def XmlContextManager(path):
|
114
|
+
|
115
|
+
print(f'{path}を開きます')
|
116
|
+
|
117
|
+
yield
|
118
|
+
|
119
|
+
print(f'{path}を閉じます')
|
120
|
+
|
121
|
+
```
|
122
|
+
|
123
|
+
|
124
|
+
|
85
125
|
---
|
86
126
|
|
87
127
|
ただし必要以上に抽象化するとメンテナンスがめんどくさいのでご注意を。
|