Ну, я начинаю немного ржаветь с моим Python, но я думаю, что могу ответить на этот вопрос - это может быть не самый лучший ответ.
Если вы планируете проводить много опросов наОднажды вы могли бы реализовать словарь, содержащий несколько экземпляров пользовательского класса, например, Poll. Вот возможное решение:
class PollVotes(object):
def __init__(self):
self.votes = []
self.stoptime = "some date/time" #I can't remember how to do this bit ;)
def add_vote(self, vote_value):
self.votes.append(vote_value);
def tally_votes(self):
return self.votes.size()
def has_closed(self):
if time_now >= self.stoptime: # I forget how you'd do this exactly, but it's for sake of example
return True
else:
return False
#then use it something like this
poll_list = {}
#irc processing...
if got_vote_command:
if poll_list["channel_or_poll_name"].has_ended():
send("You can no longer vote.")
else:
poll_list["channel_or_poll_name"].add_vote(persons_vote)
#send the tally
send("%d people have now voted!" % poll_list["channel_or_poll_name"].tally_votes())
Конечно, вам нужно будет отредактировать класс опроса в соответствии с вашими потребностями, т.е.чтобы разрешить множественные значения в голосовании, записать, кто за что голосует (если вы этого хотите) и т. д.
Что касается проверки того, завершился ли опрос, вы можете отредактировать класс опроса, чтобы иметь время окончания,и иметь функцию, которая возвращает True / False независимо от того, прошло это время или нет.Возможно, посмотрите документы для модуля datetime ...?
В любом случае, надеюсь, это поможет.