當我寫它,它似乎是超現實的,我認爲我確實遇到了這個問題。正確使用`isinstance(OBJ,類)的'
我有一個對象列表。這些對象中的每一個都是我編寫的Individual
類的實例。
因此,傳統觀念認爲,isinstance(myObj, Individual)
應返回True
。但是,情況並非如此。所以我想,有我在節目中的錯誤,並打印type(myObj)
,這讓我吃驚的印刷instance
和myObj.__class__
給我Individual
!
>>> type(pop[0])
<type 'instance'>
>>> isinstance(pop[0], Individual) # with all the proper imports
False
>>> pop[0].__class__
Genetic.individual.Individual
我很難過!是什麼賦予了?
編輯:我個人類
class Individual:
ID = count()
def __init__(self, chromosomes):
self.chromosomes = chromosomes[:] # managed as a list as order is used to identify chromosomal functions (i.e. chromosome i encodes functionality f)
self.id = self.ID.next()
# other methods
'pop [0] .__ class__ is Genetic.individual.Individual' evaluate to'True'。 – inspectorG4dget
但是'pop [0] .__ class__ is Individual'在您的交互式Python會話中評估爲'isinstance(pop [0],Individual)'評估爲False? (我的答案應該更加精確。) – user4815162342
是的,那個評估結果爲'False' – inspectorG4dget