回答編集履歴

2

訂正 functools.partial だとこの例ではうまくいったので、 lambda へ変更

2022/12/05 03:17

投稿

teamikl
teamikl

スコア8664

test CHANGED
@@ -7,7 +7,7 @@
7
7
  Productクラスの再利用性が犠牲になります。
8
8
 
9
9
  実質 Base クラス内でしかインスタンスを生成できなくなり、
10
- functools.partial での利用ができなくなったり、
10
+ ~~functools.partial~~ lambda での利用ができなくなったり、
11
11
  単体テストを作成するのにひと手間必要になり、利便性が損なわれます。
12
12
 
13
13
  ```python
@@ -30,7 +30,7 @@
30
30
 
31
31
 
32
32
  # 明示的に渡すことで、Base 外でも base を与えれば Product のインスタンスを作れるようになります。
33
- # => 単体テストや functools.partial での利用に配慮
33
+ # => 単体テストや lambda での利用に配慮
34
34
  ```
35
35
 
36
36
  Base 側でカウントする場合は、
@@ -87,6 +87,10 @@
87
87
  print(obj)
88
88
  print(base.count) # 2
89
89
 
90
+ create12 = lambda: base.createProduct(12)
91
+ obj2 = create12()
92
+ print(base.count) # 3
93
+
90
94
  ```
91
95
 
92
96
 

1

コードのミス修正

2022/12/04 09:15

投稿

teamikl
teamikl

スコア8664

test CHANGED
@@ -53,7 +53,7 @@
53
53
  def createProduct(self, *args, **kw):
54
54
  obj = Product(*args, **kw)
55
55
  self._counter.add(obj)
56
- self._total += 0
56
+ self._total += 1
57
57
  return obj
58
58
 
59
59
  @property