不囉嗦直接看code
# Online Python compiler (interpreter) to run Python online.
# Write Python 3 code in this online editor and run it.
class TC:
def __init__(self,
condition_list: list = ['A']):
self.condition_list = condition_list
def add(self):
temp_tc = TC()
self.condition_list.extend(temp_tc.condition_list)
tc1 = TC()
tc1.add()
print(tc1.condition_list)
tc2 = TC()
tc2.add()
print(tc2.condition_list)
tc3 = TC()
tc3.add()
print(tc3.condition_list)
['A', 'A']
['A', 'A']
['A', 'A']
['A', 'A']
['A', 'A', 'A', 'A']
['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A']
很明顯這有很嚴重的 memory leak 的 issue
主要是closure讓區域變數無法release, condition_list 看似已經從內存中消失了,但依然能夠訪問到 condition_list 這個非局部變量!
python
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing