python - 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”的值是正确的。
为什么?
解决方案
推荐阅读
- sql - 优化rails查询删除select方法
- python - 将python代码组织/格式化为一行
- jupyter-notebook - 使用 Jupyter Notebook 时,有没有办法从最后一个关机点继续工作
- java - 如何通过处理 XML 文件来更改 Modelica MultiBody 组件参数?
- sql-server - SQL Server 表连接
- r - 在 R arcgisbinding 中定义字段类型
- scala - 在 Chisel 中实现 Verilog $onehot 任务
- php - 搜索大量字符串php和mysql
- swift - IOS如何取自定义可调整大小的SKVideoNode来引用自定义可调整大小的ARImageAnchor SCNPlane的位置和大小
- angular - url 中的“%2b”不适用于 url 重写