Commit a3407dd
Fix flyweight_with_metaclass sharing instances for different arguments (#495)
The pool key concatenated str(arg) with no separator, so Card2('1', '0') and
Card2('10') (or Card2(1) and Card2('1')) got the same key and the second call
returned the first call's instance. Use repr of the class name, args and
sorted kwargs instead, which also makes the key independent of kwarg order.
Add tests, since the module had none.
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>1 parent 00fcfc4 commit a3407dd
2 files changed
Lines changed: 30 additions & 5 deletions
File tree
- patterns/structural
- tests/structural
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
23 | 25 | | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
| 26 | + | |
28 | 27 | | |
29 | 28 | | |
30 | 29 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
0 commit comments