2016-07-26 38 views
0

如果我有這樣的Python腳本:從類中找到的類的實例的名稱

class my_class(object): 

    def __init__(self): 
     pass 

    def get_name(self): 
     return [name of self] 


this_is_the_name_im_looking_for = my_class() 

print ('the name is: ' + this_is_the_name_im_looking_for.get_name()) 

我會有什麼才能具備的功能,以取代[個體經營的名稱]get_name返回'this_is_the_name_im_looking_for'?

我需要這個,因爲我創建一個Python模塊,並希望回饋他們使用

+3

類的單個實例可被綁定到多個可變名稱:'this_name = my_class(); other_name = this_name; this_name is other_name == True' –

+0

@ali_m我假設這不是這種情況,但這是一個有用的評論,儘管如此 –

+1

或者,它可能根本沒有任何名稱:'mylist.append(my_class( ))'。 –

回答

0

內置蟒蛇方法idreturns

的整數這個類的實例,它對於這個物體在其生命週期中保證是唯一的和恆定的。

這不會返回對象的「名稱」,但它可以讓您區分類的不同實例。這也解決了由於ID是與底層的對象(在存儲器中的對象的地址)相關聯的具有多個指向同一對象的問題:

val1 = 1 
val2 = val1 
id(val1) == id(val2) 
# returns: True 
id(val1) == id(1) 
# returns: True 
id(val1) == id(2) 
# returns: False 
+0

我認爲他想'get_name(val1)!= get_name(val2)'。 – quartata

+2

小心使用int與id作爲例子,你會得到令人驚訝的結果。 id(100 * 1000)與id(1000 * 100)不同,但int傳遞的id是值的值。 –