我正在尝试使self.id显示准确的值。我做到了,但我想知道如何改善它?
Fragment
我希望获得确切的价值,但我不确定如何使它更智能。
答案 0 :(得分:2)
如果您只是想缩短它,可以使用self.id
值和要将其更改为的值的列表。对于第一个功能:
def OnClickNextPage(self):
possible_ids = [36, 37, 1020, 2020, 3019, 5015]
change_id = [37, 1020, 2020, 3019, 5015, 7019]
if self.id in possible_ids:
self.id = change_id[possible_ids.index(self.id)]
return self
else:
return self
确保返回self
,以便它为对象更新self.id
。
答案 1 :(得分:2)
您可以将ID列为列表,并跟踪您所在的页面(索引)。将id
设置为属性,以便您可以根据需要轻松地基于当前索引进行计算:
class Pages:
def __init__(self, ids):
self.ids = ids
self.index = 0
@property
def id(self):
return self.ids[self.index]
def OnClickNextPage(self):
self.index += 1
def OnClickPrevPage(self):
self.index -= 1
pages = Pages([36, 37, 1020, 2020, 3019, 5015])
print(pages.id)
pages.OnClickNextPage()
print(pages.id)
pages.OnClickNextPage()
print(pages.id)
pages.OnClickPrevPage()
print(pages.id)
这将输出:
36
37
1020
37
答案 2 :(得分:0)
您可以列出页面的有序列表,然后移至列表的n + 1或n-1元素。这里唯一的复杂性是知道您当前的位置。如果可能的话,您可以简单地存储n和id。如果不可能,则可以使用index方法找到n。
list_of_pages.index(id)
这不是很快,但是需要维护的代码更少。