首页 > 解决方案 > Python:实例方法在被自身调用时返回“none”

问题描述

我有另一个 Python 初学者问题:

options =['stein', 'schere', 'papier']

class Spieler(object):
    def __init__(self, nummer):
        self.nummer = nummer

    def abfrage(self):
        print("Spieler Nr.", self.nummer)
        eingabe = input("- Stein/Schere/Papier? >>>")
        if eingabe.lower() in options:
            print("Danke!")
            # when eingabe printed out from here, always correct!
            return eingabe 
        else:
            print("Nope...")
            self.abfrage() # this call is the problem

spieler1 = Spieler(1); spieler2 = Spieler(2)
wahl1 = spieler1.abfrage()
wahl2 = spieler2.abfrage()

所以 - 代码返回一个很好的结果“eingabe”给 wahl1/2。但前提是它没有通过错误循环,这意味着实例方法再次调用自身。

在这些情况下,“无”将返回给 wahl1/2,尽管如果从方法中打印出来,“eingabe”的值是正确的。

为什么?

标签: pythonclassreturn

解决方案


推荐阅读