回答
http://docs.python.org/library/functions.html#id
返回的對象的「身份」。這是一個整數(或長整數),在整個生命週期中保證這個對象是唯一的並且是常量。具有非重疊生命週期的兩個對象可能具有相同的id()值。
CPython實現細節:這是對象的地址。
所以是的,這些ID是唯一的。
然而,因爲Python中的字符串是不可改變的,id('test')
可能是所有字符串相同的,因爲'test' is 'test'
很可能是True
。
如果OP並行運行多個Python實例,那麼它並不保證是唯一的。 –
正確,但使用線程時,我想它是。 – ThiefMaster
在CPython中,id
是指向內存中對象的指針。
>>> a = [1,2,3]
>>> b = a
>>> id(a) == id(b)
True
所以,如果你有相同的對象多個引用(和一些角落情況下,小弦創建只有一次,也數比257更小),它不會是唯一的
你這是什麼意味着獨特?什麼是獨特的?
它只是內存部分的標識符,由參數的值使用。對於具有相同的值不變的對象往往是相同的:
>>> id('foo') == id('fo' + 'o')
True
,如果你談論你試圖做這可能會幫助 - 它是不是真的典型使用的ID()內置什麼,至少所有的字符串,除非你真的知道你在做什麼。
Python docs nicely describe the id() builtin function:
這是一個整數(或長整數) 這是保證其 壽命期間可用於此目的的獨特和 恆定。非重疊生命期的兩個對象可能具有相同的id()值。
當我讀到這個時,id()的返回值實際上只能保證在一個解釋器實例中是唯一的 - 即使這樣,只有當這些項的生存期重疊時。保存這些ID以供以後使用,通過套接字等發送它們似乎沒有用處。再次,我不認爲這是真正的人誰不知道他們需要它。
如果您想要生成在多個程序實例中唯一的ID,您可以查看uuid module。
它也發生,我認爲你可能試圖produce hashes from Python objects.
也許有一些方法你的問題,這將是比試圖使用id()函數,也許問題需要重新制定清潔。
- 1. id是一個python內建函數嗎?
- 2. Uniq和計數
- 3. PHP有python execfile函數嗎?
- 4. 有可能循環javascript函數id嗎?
- 5. uniq多維數組
- 6. Asp.Net Mvc Uniq Routing
- 7. 如何通過uniq id獲取Gearman Jobs的狀態?
- 8. Array#uniq ActiveRecord對象數組
- 9. Javascript函數Id
- 10. XPath id()函數
- 11. Python可以打印函數定義嗎?
- 12. 這是一個哈希函數嗎? python
- 13. Python:系統函數太慢了嗎?
- 14. Python的urllib2有一個gethostbyname函數嗎?
- 15. select vs distinct vs uniq?
- 16. 嵌套函數比Python中的全局函數更快嗎?
- 17. Python的map函數可以調用對象成員函數嗎?
- 18. 函數可以從Python中的另一個函數繼承嗎?
- 19. 是a.insert(0,x)和o(n)函數嗎? a.append是一個O(1)函數嗎? Python
- 20. 如何在lodash中使用.uniq函數時指定[isSorted = true]?
- 21. 通過迭代防止重複 - 內置函數.uniq [rails4]
- 22. uniq在C#
- 23. 參數化數組#uniq(即,uniq_by)
- 24. Python區別兩個字典中的一個uniq鍵
- 25. UNIQ表由1列
- 26. `uniq`二維Theano張
- 27. python-rq隊列中的python scikit函數運行得更快嗎?
- 28. 的$(document)。在( '點擊', '#ID',函數(){})VS $( '#ID')。在( '點擊',函數(){})
- 29. 如何在每個輸入標籤中插入uniq id?
- 30. GridX需要數字ID嗎?
爲了真正回答問題,我們需要知道你實際計劃用'test_id'做什麼。而且,通過獨特的方式,你是否認爲與'=='相等的輸入是唯一的,或者在不同時間創建的這些對象是否具有不同的'test_id'?那麼跨調用或進程呢? – detly