Python - сравнивает два объекта класса на основе значений атрибутов - PullRequest
0 голосов
/ 29 октября 2019

У меня есть класс Python, имеющий атрибуты типа string, integer, dictionary, списка словарей и т. Д. Мне нужен способ сравнения двух объектов этого класса на основе значений их атрибутов. По сути, мне нужна помощь в переопределении метода eq . Но я не уверен, как это сделать, поскольку атрибуты класса состоят из словарей, списков и т. Д.

Я попытался переопределить метод eq , используя pycharm. Buy не решил мою проблему.

class PrimaryAttributes:

    def __init__(self, **kwargs):
        self.InstanceId = kwargs['InstanceId'] #String
        self.RegionName = kwargs['RegionName'] #String
        self.AccountNo = kwargs['AccountNo'] #String

    def __eq__(self, other):
        print('TODO: override equals method.')

class Attributes(PrimaryAttributes):

    def __init__(self, **kwargs):
        PrimaryAttributes.__init__(self, **kwargs)
        self.ImageId = kwargs['ImageId'] #String
        self.InstanceType = kwargs['InstanceType'] #String
        self.KeyName = kwargs['KeyName'] #String
        self.Platform = kwargs['Platform'] #String
        self.State = kwargs['State'] #String
        self.IamInstanceProfile = kwargs['IamInstanceProfile'] #String
        self.SecurityGroups = kwargs['SecurityGroups'] #Dict
        self.SubnetId = kwargs['SubnetId'] #String
        self.VpcId = kwargs['VpcId'] #String
        self.Tags = kwargs['Tags'] #List of dict


    def __eq__(self, other):
        print('TODO: override equals method.')

Мне нужно сравнить объекты на основе значений атрибутов и вернуть True или False.

...