python list indexes 的解释是什么?
What is python list indexes explanation here?
这是我的部分代码:
some_item = target_item
first_item = my_list[0]
print first_item
print some_item
print my_list.index(first_item)
print my_list.index(some_item)
print "Finished"
exit()
这是我得到的:
<models.adb.ADB object at 0x7f1ec7654b50>
<models.seb.SEB object at 0x7f1ec7654b90>
0
0
Finished
我在 my_list
中的项目是 class 个对象。
有人可以解释一下这种行为吗?
这取决于为 ADB
和 SEB
实施的比较,可能通过为此 类.
实施 __eq__
运算符
当python在列表中寻找first_item
和some_item
的实例时,他会使用这个运算符来判断是否第i
个元素在列表中列表是这个元素,扫描每个 i
.
因此,如果实现是这样的
class Parent:
def __init__(self):
self.x = 0
def __eq__(parentObj):
return self.x == parentObj.x
class ADB (Parent):
def __init__(self): super.__init__()
class SEB (Parent):
def __init__(self): super.__init__()
它会导致 ADB() == SEB()
,因此,导致对象在与第一个列表的元素进行比较时 "match",但同时是不同的对象。
请注意,同样可以这样做,使用继承来简化示例。
class ADB (Parent):
def __init__(self):
self.x = 0
def __eq__(obj):
return self.x == obj.x
class SEB (Parent):
def __init__(self):
self.x = 0
def __eq__(obj):
return self.x == obj.x
这是我的部分代码:
some_item = target_item
first_item = my_list[0]
print first_item
print some_item
print my_list.index(first_item)
print my_list.index(some_item)
print "Finished"
exit()
这是我得到的:
<models.adb.ADB object at 0x7f1ec7654b50>
<models.seb.SEB object at 0x7f1ec7654b90>
0
0
Finished
我在 my_list
中的项目是 class 个对象。
有人可以解释一下这种行为吗?
这取决于为 ADB
和 SEB
实施的比较,可能通过为此 类.
__eq__
运算符
当python在列表中寻找first_item
和some_item
的实例时,他会使用这个运算符来判断是否第i
个元素在列表中列表是这个元素,扫描每个 i
.
因此,如果实现是这样的
class Parent:
def __init__(self):
self.x = 0
def __eq__(parentObj):
return self.x == parentObj.x
class ADB (Parent):
def __init__(self): super.__init__()
class SEB (Parent):
def __init__(self): super.__init__()
它会导致 ADB() == SEB()
,因此,导致对象在与第一个列表的元素进行比较时 "match",但同时是不同的对象。
请注意,同样可以这样做,使用继承来简化示例。
class ADB (Parent):
def __init__(self):
self.x = 0
def __eq__(obj):
return self.x == obj.x
class SEB (Parent):
def __init__(self):
self.x = 0
def __eq__(obj):
return self.x == obj.x