python类问题,结果都是None

class Atm(object):

money = 0
num = 0

def get_num(self):
    print('欢迎来到atm,请选择操作')
    print('查询   【1】')
    print('存款   【2】')
    print('取款   【3】')
    print('退出   【4】')
    self.num = input('请输入选项数字:')

def query(self):
    return f'目前的余额为:{self.money}'

def add_money(self):
    self.add = input('请输入要存入的金额:')
    self.money += int(self.add)
    return f'已经存入:{self.add}, 目前余额为:{self.money}'

def sub_money(self):
    self.sub = input('请输入要取款的金额:')
    if int(self.sub) <= self.money:
        self.money -= int(self.sub)
        return f'已经存入:{self.sub}, 目前余额为:{self.money}'
    return f'余额不够操作失败,目前余额为:{self.money}'

def exit(self):
    return '谢谢光临!'

def error(self):
    return '请检查输入!'

def decide(self):
    if self.num == '1':
        return self.query()
    elif self.num == '2':
        return self.add_money()
    elif self.num == '3':
        return self.sub_money()
    elif self.num == '4':
        return self.exit()
    else:
        return self.error()

def main(self):
    try:
        self.get_num()
        self.decide()
    except Exception as e:
        print(e)

if name == 'main':
x = Atm()
print(x.main())

本人初学者,我不明白为什么结果都是None,麻烦帮忙指正谢谢

请参考如下注释信息


money = 0
num = 0

class Atm():
    def __init__(self):
        self.money = 0  #定义一个参数初始值,否则返回了一个未定义得结果

    def get_num(self):
        print('欢迎来到atm,请选择操作')
        print('查询   【1】')
        print('存款   【2】')
        print('取款   【3】')
        print('退出   【4】')
        self.num = input('请输入选项数字:')


    def query(self):
        return f'目前的余额为:{self.money}'


    def add_money(self):
        self.add = input('请输入要存入的金额:')
        self.money += int(self.add)
        return f'已经存入:{self.add}, 目前余额为:{self.money}'


    def sub_money(self):
        self.sub = input('请输入要取款的金额:')
        if int(self.sub) <= self.money:
            self.money -= int(self.sub)
            return f'已经存入:{self.sub}, 目前余额为:{self.money}'
        return f'余额不够操作失败,目前余额为:{self.money}'


    def exit(self):
        return '谢谢光临!'


    def error(self):
        return '请检查输入!'


    def decide(self):
        print(self.num)
        if self.num == '1':
            return self.query()
        elif self.num == '2':
            return self.add_money()
        elif self.num == '3':
            return self.sub_money()
        elif self.num == '4':
            return self.exit()
        else:
            return self.error()


    def main(self):
        try:
            self.get_num()
            res = self.decide()
            return res #这里增加函数返回值
        except Exception as e:
            print(e)

if __name__ == "__main__":
    x = Atm()
    print(x.main()) #原函数没有返回值,打印没有用,将要返回的内容打印

结果输出如下:

img

main函数又没有返回值,你为什么要打印它
改为return self.decide()