Re: [問題] 如何找到class的instance??
※ 引述《KSJ (阿真)》之銘言:
: ※ 引述《sbrhsieh (偶爾想擺爛一下)》之銘言:
: : 我認為在討論這個主題之前有必要先釐清一點:
: : 何謂 "a class 曾 instance 過的 instance"?
: : 舉例來說,假設你有一個可以 return 上述的集合的 function: get_a_instances,
: : 那麼下面的碼中集合 all_a 應該包含幾個物件?
: : a()
: : a()
: : all_a = get_a_instances()
: 以我的觀點來說
: 應該是0個
: 因為沒有存起來
: 也就是 如果是下面的話
: b=a()
: c=a()
: all_a 會是二個
: all_a[0] 是b這個instance
: all_a[1] 是c這個instance
: 好讓我能找到 b底下的一些參數
: 其實我也不懂為什麼globals() 裡面會有同名的module跟instance
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
這句話就好像 在dictionary裡 有二個一樣的key
但裡面存著不同的東西
不可思議 但在qgis的python console下真的存在@_@a
我目前的解決辨法是 類似於 前幾篇的文章中
"把instance放入instance的property中"
不過因為instance抓不到 所以也沒辨法抓到instance中的property
所以我就把 "instance放入比它自己還上一層的某個class的property中"
(我想我說的class應該也是某個instance吧)
再去看它的 property 就是 我想要的instance了
不過這的確會碰到 所謂的 每個instance都會不能清除的問題
以我的case來說 我想到二個原因 覺得應該還好
1.我的instance只在qgis軟體打開的時候被軟體自動instance一次
使用者雖然也可以透過qgis下的pyhton console來新建instance
但機會應該不大 (一般使用者都用GUI)
2.如果需要新建instance
將其放在同一個class(或是叫instance)的property下
感覺可以解決清除的問題
不過是需要比較注意就是了
會有這樣的問題 主要是想讓我的無腦debug法變得稍微有腦一點orz...
目前運行的結果還算理想 也謝謝大家的幫忙<(_ _)>
: 我在python shell 下中
: import sys
: 我看globals()下 有sys module
: sys=a()
: 我看globals()下 有sys 是a的instance
: 再import sys
: 又是變回 sys module
: 試不出怎麼會有同名的東西 感覺很奇怪 目前還在思索中
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.63.180
※ 編輯: KSJ 來自: 140.112.63.180 (11/27 04:22)
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章