Какой аргумент просит функция в классе

Ребят, я сделал код ниже, запустил его. Но выдаёт ошибку в 14 строке:

TypeError: Main() missing 1 required positional argument: 'self'

Сам код:

from random import randint as rndigit

class Program:
    def Main(self):
        procent_chance = int(input("Введите шанс: "))
        self.Calculate(procent_chance)
    def Calculate(self, procent_chance):
        now_chance = rndigit(0, 100)
        if now_chance == procent_chance or now_chance <= procent_chance:
            return (f"Вам повезло с шансом: {now_chance}")
    return (f"Вам не повезло с шансом: {now_chance}")

if __name__ == "__main__":
    Program.Main()

input()

Скажите пожалуйста что делать, чтобы программа работала.


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

Автор решения: S. Nick

Попробуйте так:

from random import randint as rndigit

class Program:
    def main(self):
        procent_chance = int(input("Введите шанс: "))
        result = self.calculate(procent_chance)
        return result

    def calculate(self, procent_chance):
        now_chance = rndigit(0, 100)
        if now_chance == procent_chance or now_chance <= procent_chance:
            return f"Вам повезло с шансом: {now_chance}"
        return f"Вам не повезло с шансом: {now_chance}"


if __name__ == "__main__":
#    Program.Main()
    program = Program()
    print(program.main())

input()
→ Ссылка