作者查詢 / LiloHuang
作者 LiloHuang 在 PTT [ Python ] 看板的留言(推文), 共373則
限定看板:Python
看板排序:
全部C_and_CPP835Perl579Python373Programming77Soft_Job58EZsoft39Sodagreen28PHP25graduate18Web_Design17RegExp10CMWang8NY-Yankees8CodeJob5joke5Blog4java4HKday3iOS3SENIORHIGH3SYSOP3C_Sharp2CSMU-AC922DC2MacDev2optical2PhotoCritic2Prob_Solve2share2asciiart1ask1ASM1Bz1CTSH943011FJU-BA94C1FJU-Leader1global_univ1Gossiping1hjsh1HSNU_10081jingle1juniorhigh1LinuxDev1Master_D1NCTU-STAT95G1NCTU-STAT96G1NCYU_BE_95A1NTUE_Nse981NUU_Talk1Olympics_ISG1PushDoll1SCU_Chin96C1Sony-style1tax1TFSHS66th3251TKU_EE_92C1TKU_EW94B1TKU_TSPCB931TTU-I91A1Visual_Basic1WuLing46-3171<< 收起看板(61)
1F推: import Tkinter; tcl = Tkinter.Tcl();03/19 15:31
2F→: tcl.eval("puts {Hello World}")03/19 15:32
1F→: 可以設定 OpenShift CRON job https://goo.gl/jXjJdR08/22 18:53
2F→: 前提是你的 Gear 沒有因為免費帳號,而自動閒置被關閉08/22 18:54
3F→: 多數免費的 PaaS 都會因為網站太久沒有人連,自動閒置08/22 18:55
4F→: 建議租用一個便宜的 VPS 比較方便解決此類問題。08/22 18:56
8F推: 可以自己到 .openshift/cron 目錄新增,看看 README 檔08/23 22:01
9F→: 麻煩的是免費的 Gear 會因為閒置也順便暫停 Cron job08/23 22:02
5F推: (y)08/08 10:58
1F推: 預設值都是 None,可試試 str[None:None:-1]07/22 23:50
3F推: 這簡單,看 Python 原始碼便知,http://goo.gl/mL192807/22 23:58
4F→: 在 PySlice_GetIndicesEx(...) 裡面有一段邏輯07/22 23:58
5F→: 基本上就是如果 step = -1,則 defstart = length - 107/22 23:59
6F→: defstop = -1,因此會產生新的 list 裝載相反的順序07/22 23:59
7F→: 當然這個情況是在 start 跟 stop 都是 Py_None 的時候07/23 00:02
8F→: 才會使用 defstart 跟 defstop,看看原始碼你就懂了 :)07/23 00:02
12F推: Python 有很多實作的版本,我猜測你是使用 CPython07/23 09:03
13F→: 像是 IronPython 跟 PyPy 就是不同的 interpreter 實作07/23 09:04
14F→: 其實這個問題官方文件有詳載 https://goo.gl/Tr13oP07/23 09:04
15F→: 坦白說文件我花了好一回才找到 XD 看實作原始碼比較快07/23 09:09
1F推: http://goo.gl/CpWviL Python 會直接建立新的 list07/22 10:51
2F→: 把 reference 拷貝過去,這並不算是 Copy-on-write07/22 10:51
3F→: 畢竟拷貝的行為還是產生了,而且並不是在 write 時拷貝07/22 10:54
4F→: 所以不能稱之為是完整的 copy-on-write。07/22 10:54
8F推: 我必須要修正我的用語,這不是"真正"的 copy-on-write07/22 11:43
9F→: 謝謝 uranusjr 的補充 :)07/22 11:43
10F→: 真正的 copy-on-write 是在 write 時拷貝物件,即便是07/22 11:45
11F→: reference 也要在 write 時才被拷貝,而不是一開始拷貝07/22 11:45
12F→: 如果有一億個 list elements 搭配 COW,不會有 O(n) 的07/22 11:46
13F→: 拷貝成本存在於建立第二份 list 時07/22 11:46
14F→: 另外之所以我會用是否"完整"的用詞是維基百科對於 COW07/22 11:48
15F→: 的定義,某種策略上是有用指標來只到原始版本的07/22 11:48
16F→: https://goo.gl/HiAM5V 但是我不認為這是真正的COW就是07/22 11:48
17F→: 因為真正大家談及的COW,都是像 fork child process07/22 11:50
18F→: 在還沒有修改原始版本前,不應該存在有額外的消耗就是07/22 11:51
19F→: 或者應該說 C++ 拷貝 list<Foobar *> 假設 Foobar 是07/22 11:52
20F→: 成本超高的大物件,在寫入時作出副本,也是某種程度的07/22 11:53
21F→: COW,對於該大物件而言。只是 Python 根本就是建立了07/22 11:53
22F→: 新物件,然後把參照給換掉,因為數字是 immutable obj07/22 11:53
23F→: 跟 COW 的策略一點關係都沒有,因為新物件不是它建立的07/22 11:56
24F→: 真正的 COW 要是全自動的,對使用者來說是透明無感的。07/22 12:02
25F→: 另外如同維基百科寫的 std::string 有 COW 實作07/22 12:02
26F→: 有空的人不仿可以看看實作方法,我相信是拷貝指標 :P07/22 12:02
27F推: 因此用"完整"一詞會更好,完整的COW連指標都不會拷貝07/22 12:06
28F→: 但這還是端看實作,跟到底被 COW 的對象是什麼物件而定07/22 12:07
7F推: Python 的 list 並沒有實作 copy-on-write07/13 22:14
4F推: 因為 ['c1'] 在第二層迴圈時,你沒有第三層迴圈去印它07/08 19:15
5F→: 不考慮 stack 會炸掉,這個用遞迴簡單寫一下就可以了07/08 19:15
6F→: movies = ["a1","a2","a3",["b1","b2",["c1"]]]07/08 19:15
7F→: def foobar(m):07/08 19:15
8F→: for i in m:07/08 19:15
9F→: if isinstance(i, list): foobar(i)07/08 19:16
10F→: else: print i07/08 19:16
11F→: foobar(movies)07/08 19:16
1F推: 作業系統要用 64bit 版本,Python 也要是 64bit 版本05/27 11:02
7F推: 推 http://asciiflow.com/ 這東西好用!05/18 19:49
1F推: for (k, v) in dict1.items(): setattr(A, k, v) 如何?05/02 09:38