Python 如何为对象列表返回int类型表示
输出对象列表时,如何返回对象的int类型表示 我试过这个:Python 如何为对象列表返回int类型表示,python,Python,输出对象列表时,如何返回对象的int类型表示 我试过这个: class Passport(object): def __init__(self, my_id): self.id = my_id def __repr__(self): return int(self.id) list_of_objects = [ Passport(19181), Passport(29191), Passport(39191) ] if id in lis
class Passport(object):
def __init__(self, my_id):
self.id = my_id
def __repr__(self):
return int(self.id)
list_of_objects = [
Passport(19181),
Passport(29191),
Passport(39191)
]
if id in list_of_objects:
print("true")
其中,对象列表是Passport
实例列表。但这会产生一个错误\uuuuuu repr\uuuuuuuuuuuuuuuuuuuuuuuuuuuu。返回的非字符串(int类型)
我可以使用字符串来解决这一问题,但我想知道int类型是否可行?您可以检查对象ID的并行列表
if any(id == pp.id for pp in list_of_objects):
print("true")
您可以检查对象ID的并行列表
if any(id == pp.id for pp in list_of_objects):
print("true")
需要返回对象的字符串表示形式。返回其他类型不是有效的\uu repr\uu
实现
如果您想要一种返回某个数字的方法,请添加一个自定义方法
顺便说一句,注意实现\uu repr\uu
并不是让对象列表中的id起作用的方法。要使其工作,您应该实现\uuuuuuhash\uuuuuuu
和\uuuuuueq\uuuuu
。但在这一点上,你应该认真考虑一下,如果你想5==Passport(5)
是真的;可能不会。因此,您应该通过明确查看id
属性来改变支票的工作方式
您可以执行以下操作,而不是执行对象列表中的id的:
if any(lambda x: x.id == id, list_of_objects):
print('true')
需要返回对象的字符串表示形式。返回其他类型不是有效的\uu repr\uu
实现
如果您想要一种返回某个数字的方法,请添加一个自定义方法
顺便说一句,注意实现\uu repr\uu
并不是让对象列表中的id起作用的方法。要使其工作,您应该实现\uuuuuuhash\uuuuuuu
和\uuuuuueq\uuuuu
。但在这一点上,你应该认真考虑一下,如果你想5==Passport(5)
是真的;可能不会。因此,您应该通过明确查看id
属性来改变支票的工作方式
您可以执行以下操作,而不是执行对象列表中的id的:
if any(lambda x: x.id == id, list_of_objects):
print('true')
\uuuu repr\uuu
必须返回一个str
,如您所见
做你所要求的事情的正确方法是:
list_of_object_ids = [p.id for p in (Passport(19181), Passport(29191), Passport(39191))]
if id in list_of_objects:
print("true")
\uuuu repr\uuu
必须返回一个str
,如您所见
做你所要求的事情的正确方法是:
list_of_object_ids = [p.id for p in (Passport(19181), Passport(29191), Passport(39191))]
if id in list_of_objects:
print("true")
\uuuu repr\uuuuu()
需要返回字符串,返回str(self.id)
有什么问题?你能举个例子说明你在找什么吗?\uuuuu repr\uuuu()
需要返回字符串,返回str(self.id)有什么问题吗
?你能举个例子说明你在寻找什么吗?是的,我可以使用类似于\uuuuuhash\uuuuuu
的东西,但我希望实际的列表表示是一组数字,即如果对象列表中有id。\uuuuu hash\uuuu:
这是否意味着我需要创建另一个循环?i、 e.删除\uuuu repr\uuuuuu
然后再次循环。将其作为字符串返回,稍后再强制转换?@busterdust是的,我知道我可以这样做,但不知道是否有其他解决方案。只需创建一个get\u id()方法def get_id():return self.id
是的,我可以使用类似于\uuuuu hash\uuuu
的东西,但我希望实际的列表表示形式是一组数字,即如果id在对象列表中。\uu hash\uu:
这是否意味着我需要创建另一个循环?i、 e.删除\uuuu repr\uuuuuu
然后再次循环。将其作为字符串返回,稍后再强制转换?@busterdust是的,我知道我可以这样做,但不知道是否有其他解决方案。只需创建一个get\u id()方法def get_id():返回self.id