Re: [問題] 如何找到class的instance??
※ 引述《KSJ (阿真)》之銘言:
: ※ 引述《sbrhsieh (偶爾想擺爛一下)》之銘言:
: : 如果你的需求是在任意時刻訪問一 class/type 的所有 live object,那麼
: : globals() 回報的 mapping 裡有同名的現象(雖然我不認為會有)並無關緊要,
: http://imgur.com/BK9v7.png

: 這個是qgis下的python console
: 紅線是我的instance跟module同名部份
: 藍線是官方的plugin 也跟我的一樣有同名的instance跟module
: 似乎是qgis的python console裡才會發生的
: 不知道是什麼原因@_@
這麼亂~~~
會不會是某個變數(binding)的值是個 dictionary,而此 dictionary 有同名的
binding,比如說:
A=dict(B='Hello', C='World', D=dict(B=20), E=dict(C=30))
globals()
{'A': {'C': 'World', 'B': 'Hello', 'E': {'C': 30}, 'D': {'B': 20}},
'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__',
'__doc__': None}
請你先暫時改成這樣子測試,再檢驗一次。
G = dict(globals())
for k, v in G.iteritems():
print '%s: %s\n' % (k, v)
或者是:
len(globals()), len(set(globals())) # 看兩數是否相等。
: 為了這個繼承於 "object"
: 我正在努力地看...orz
: http://www.cafepy.com/article/python_types_and_objects/
: python_types_and_objects.html
: (短網址 http://0rz.tw/xy7NW)
: 不過裡面有用到object底下的東西嗎@_@? (我在字面上看不出來...)
: cls是什麼啊 囧 在我認知裡 class下的def 的第一個參數就是他自己(self)
: 用self來解釋似乎也通
: 關於 @staticmethod 看了一下官方文件
: 感覺是定義了class下的function
: 這讓我對 class 跟 instance 的適用時機 更混雜了 囧
這算是 naming convention,變數(binding)你要怎麼命名都可以,妥善的命名
規則可以幫助程式閱讀與理解。
平常命名 instance method 的第一個 formal argument 為 self,是因為這個
變數指涉某種 class 的 instance,如果他會是指涉 class object(object 本身
是個 class),我就會把它命名成 cls(表示 class) or klass。
至於繼承自 object 則是為了讓正在定義的 class 成為 new style class。
我個人覺得這一頁連結的文章都蠻值得看得,除了求 MRO 的演算法可以暫時略過。
http://www.python.org/doc/newstyle/
: : foo.visit_live_objects(dump)
: : # output:
: : # Item 3 Item 0 Item 2 Item 4 Item 1
: 到這裡我去查了weak reference...
: 稍稍了解他的用法(就像在此處的用法)
: 不過有沒有比較平常的例子??
: 例如創了一個weak reference的變數,wref
: 這個變數感覺上用起來很不踏實 囧
: 因為wref參考的東西隨時可能不見
: 這樣的東西怎麼用呢
使用 weak reference 就是為了它的特殊行為,它不會增加 referred object 的
reference count。使用 weak reference 的時機通常是我們需要可以 touch 某個
object,但是又不希望因此而妨礙 garbage collector 去收集此 object(或說影響
garbage collector 決定此 object 是否可以再利用)。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.136.253
推
12/01 01:55, , 1F
12/01 01:55, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 10 之 10 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章