2013-04-21 39 views
1

在Python調試代碼時我遇到了以下事情:的Python:在類名和雙冒號

<ROOT.cool::IDatabase object at 0xbc88680> 

什麼雙冒號手段,爲什麼我需要他們?

+6

這是什麼對象(什麼庫)?對象的'repr()'由該對象決定,這似乎是某種具有某種界面設置的項目的約定。 – 2013-04-21 16:48:34

+1

使其更加明確:冒號在[Python標識符](http://docs.python.org/2/reference/lexical_analysis.html#identifiers)中無效。 – 2013-04-21 17:04:28

+0

你是什麼意思「爲什麼我需要他們?」 – 2013-04-21 17:37:48

回答

3

對我來說,這似乎是一個Python封裝在C++類的函數,因此::

而像Lattyware說,這只是一個呼叫到一個Python對象的__repr__()回報。

你很可能讓你自己去肯定:

class Foo(): 
    def __repr__(self): 
     return "<Foo.bar:::qux::::kludge object at %s>" %hex(id(self)) 

所以你並不需要擔心::,但它是你可能需要幫助您的調試對象本身。