0
0 комментариев

Есть код в котором разбивается версия на major, minor, build, revision

class VersionComparatorException(Exception):
    pass
 
 
class VersionParseException(Exception):
    pass
 
 
class Version(object):
 
    def __init__(self, version, major=0):
        self.major = major
        self.version = version
        ver = version.split('.')
        new_list = [re.sub('\D+', '', i) for i in ver]
 
        while len(new_list) < 4:
            new_list.append('0')
        print(new_list)
        major = new_list[0]
        minor = new_list[1]
        build = new_list[2]
        revision = new_list[3]
        for i in new_list:
            if len(i)==0:
                raise VersionParseException()
 
 
    def __lt__(self, test):
        return self.version < test.version
 
    def __eq__(self, test):
        return self.version == test.version
 
    def __ne__(self, test):
        return self.version != test.version

print(Version(‘6.4.2’) < Version ('5.5hh.5'))

Cравнивать Version можно только с Version
Как реализовать, что бы при сравнении следующего вида выбрасывало VersionComparatorException

Version("1.0") == 1
Version("2.0") == "2.0"
Version("3.1.2") < [3, 1, 2]
Version("1.5.5") > dict()


Добавить комментарий