Функции встроенные в класс (Mate) при их использовании меняют класс объекта на NoneType

class Mate:
    def __init__(self, i, describe=False, name='', atr='', um=0, cah=0, uvl=''):
        if not describe:
            self.uvl = ['программирование', 'пение', 'рисование', 'музыка']
            self.cah = []
            names = ['Валя', 'Женя', 'Вася', 'Джоан', 'Кеёси', 'Кишин', 'Фата']
            self.name = random.choice(names)
            self.um = random.randint(40, 100)
            self.i = i
            if rand() in range(1, 3):
                self.cah.append(['псих', 100])
                self.um += 200
            elif rand() in range(1, 60):
                self.cah.append(['двоечник', 50])
                self.um -= 20
            elif rand() in range(1, 50):
                self.cah.append(['хорошист', 70])
                self.um += 10
            elif rand() in range(1, 30):
                self.cah.append(['отличник', 90])
                self.um += 100
            elif rand() in range(1, 10):
                self.cah.append(['гений', -100])
                self.um += 150
            else:
                self.cah.append(['нейтрал', 200])
            self.cah.append(random.choice(self.uvl))
        else:
            self.um = um
            self.cah = [[atr, cah], uvl]
            self.name = name
            self.i = i

    def poh(self):
        if 'псих' in self.cah[0]:
            self.um -= 10
            self.cah[0][1] -= 20
        elif 'двоечник' in self.cah[0]:
            self.um += 5
            self.cah[0][1] -= 10
        elif 'хорошист' in self.cah[0]:
            self.um += 5
            self.cah[0][1] -= 10
        elif 'отличник' in self.cah[0]:
            self.um += 5
            self.cah[0][1] -= 10
        else:
            self.um += 5
            self.cah[0][1] -= 30

    def por(self):
        if 'псих' in self.cah[0]:
            self.um -= 30
            self.cah[0][1] += 20
        elif 'двоечник' in self.cah[0]:
            self.um -= 10
            self.cah[0][1] += 10
        elif 'хорошист' in self.cah[0]:
            self.cah[0][1] += 10
        elif 'отличник' in self.cah[0]:
            self.um += 10
            self.cah[0][1] -= 20
        else:
            self.um += 5
            self.cah[0][1] -= 30

    def nak(self):
        if 'псих' in self.cah[0]:
            self.um -= 30
            self.cah[0][1] += 20
        elif 'двоечник' in self.cah[0]:
            self.cah[0][1] += 10
        elif 'хорошист' in self.cah[0]:
            self.um -= 10
            self.cah[0][1] -= 20
        elif 'отличник' in self.cah[0]:
            self.um -= 20
            self.cah[0][1] += 10
        else:
            self.um += 5
            self.cah[0][1] -= 30

    def dop(self):
        if 'псих' in self.cah[0]:
            self.um -= 10
            self.cah[0][1] += 20
        elif 'двоечник' in self.cah[0]:
            self.um += 10
            self.cah[0][1] -= 20
        elif 'хорошист' in self.cah[0]:
            self.um += 15
            self.cah[0][1] -= 15
        elif 'отличник' in self.cah[0]:
            self.um += 5
            self.cah[0][1] += 5
        else:
            self.um += 15
            self.cah[0][1] -= 40

    def vizrod(self):
        if 'псих' in self.cah[0]:
            self.um -= 20
            self.cah[0][1] -= 30
        elif 'двоечник' in self.cah[0]:
            self.um -= 10
            self.cah[0][1] -= 10
        elif 'хорошист' in self.cah[0]:
            self.um -= 15
            self.cah[0][1] -= 20
        elif 'отличник' in self.cah[0]:
            self.um -= 20
            self.cah[0][1] -= 30

    def podd(self):
        if 'псих' in self.cah[0]:
            self.um += 30
            self.cah[0][1] -= 50
        elif 'двоечник' in self.cah[0]:
            self.um += 10
            self.cah[0][1] -= 20
        elif 'хорошист' in self.cah[0]:
            self.um += 5
            self.cah[0][1] -= 20
        elif 'отличник' in self.cah[0]:
            self.um += 5
            self.cah[0][1] -= 20
        else:
            self.um += 5
            self.cah[0][1] -= 30
        self.sost()

    def psyheal(self):
        if 'псих' in self.cah[0]:
            self.um += 10
            self.cah[0][1] -= 100
        elif 'двоечник' in self.cah[0]:
            self.cah[0][1] += 10
        elif 'хорошист' in self.cah[0]:
            self.um -= 10
            self.cah[0][1] += 20
        elif 'отличник' in self.cah[0]:
            self.um += 1
            self.cah[0][1] += 30
        else:
            self.um -= 5
            self.cah[0][1] -= 30
        self.sost()

    def posod(self):
        if 'псих' in self.cah[0]:
            pass
        elif 'двоечник' in self.cah[0]:
            self.um += 5
            self.cah[0][1] += 10
        elif 'хорошист' in self.cah[0]:
            self.um -= 10
            self.cah[0][1] += 20
        elif 'отличник' in self.cah[0]:
            self.um += 5
            self.cah[0][1] += 10
        self.sost()

    def lub(self):
        if 'псих' in self.cah[0]:
            self.um -= 10
            self.cah[0][1] -= 30
        elif 'двоечник' in self.cah[0]:
            self.um += 15
            self.cah[0][1] -= 30
        elif 'хорошист' in self.cah[0]:
            self.um += 20
            self.cah[0][1] -= 30
        elif 'отличник' in self.cah[0]:
            self.cah[0][1] -= 10
        else:
            self.um += 20
            self.cah[0][1] -= 30
        self.sost()

    def nelub(self):
        if 'псих' in self.cah[0]:
            pass
        elif 'двоечник' in self.cah[0]:
            self.um -= 10
            self.cah[0][1] += 10
        elif 'хорошист' in self.cah[0]:
            self.um += 10
            self.cah[0][1] -= 20
        elif 'отличник' in self.cah[0]:
            self.um -= 10
            self.cah[0][1] += 40
        else:
            self.um -= 20
            self.cah[0][1] += 30
        self.sost()

    def sost(self):
        return [self.cah, self.um, self.name]

    def exam(self):
        if self.um > 300:
            return True
        elif self.um <= 0:
            print(1)
            return False
        elif random.randint(1, 300) in range(self.um):
            print(2)
            return True
        return False

    def get_id(self):
        return self.i

Ответы (0 шт):