Как сравнить 2 комплекта и списки из разных классов? - PullRequest
0 голосов
/ 11 июля 2019

У меня есть 1 набор из класса People и список из наборов Town, который включает ID людей, которые в настоящее время добавлены в этот список.Я пытаюсь сравнить набор взаимных и посмотреть, есть ли какие-либо из этих идентификаторов в списке PHere.Затем, как только это будет сделано, чтобы предупредить 2 общих друзей, что они находятся в одном и том же городе, а затем еще раз предупредить, когда из них «уйдет»

def alertMutual(self):
    return

def checkMutual(self):
    for i in len(self.Town.PHere):
        x = Town.findPer(self, self.mutualf)
        if x in self.mutualf: self.alertMutual()
        else:return

Я застрял в процессе оповещения и не уверенэто работает так, как я думаю.

class People:
    '''People to make friendships, have a name, and a unique ID'''

    numsTimes = 0  ###Class variable for ID

    def __init__(self, name="anon"):
        if name == "anon":
            self.myname = makeRName()  ####Random Name
        else:
            self.myname = name
        self.friends = {}  ####Empty List so people will be able to make friends
        self.mutualf = {}

     def makeMutual(self, other):
        mutual = self.friends.intersection(other.friends)
        self.mutual.add(mutual)
        self.friends.remove(mutual)

class Town:
    '''To hold people, have a name, and a unique ID'''

    numsTimes = 0  # Class variable for ID

    def __init__(self, tname="anon", maxPpl=-1):

        self.PHere = [[]]  ####Hold People

        self.tID = Town.numsTimes  ###Unique ID
        Town.numsTimes += 1

        if self.Maxppl == -1:
            self.Maxppl = randint(2, 15)  ####Each town gets individual maximum of People to hold
        else:
            self.Maxppl = MaxPpl

Я ожидаю, что, если они будут в обоих источниках информации, они будут предупреждать друг друга, как только они окажутся в одном городе.Затем, когда один из них ушел, снова предупредите друг друга.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...