我正在研究班級是如何工作的,並且我想出瞭如何在某些情景中讓班級工作。但是我找不到讓我的方案有效的方法。它涉及class Function():
,def __init__(self):
和def AnotherFunction(self, Foo):
。這些不是我場景中的實際「功能」,但它們非常相似。這裏是我的代碼:Python 3.5.1:我如何讓while循環在類中運行?
class Name():
def __init__(self, Name):
self.Name = ["Your Dicer's name is: "]
self.AddName()
def AddName(self):
self.Count = 1
while(self.Input == 1):
Input = input("What is your Dicer's name?:\n")
if(any(BadWord in Input.lower() for BadWord in [])):
print("That's an inappropriate name! Try again")
elif(len(Input) < 3):
print("That name is too short! Try again.")
elif(len(Input) > 16):
print("That name is too long! Try again.")
else:
self.Count -= 1
self.Name.append(Input)
我的問題是,爲什麼不會發生在class
的while loop
?我試着查找其他堆棧溢出問題,類文章和教程,以及與while循環有關的其他問題,但無濟於事。你能告訴我爲什麼它不會運行,以及如何解決這個問題?我將不勝感激。謝謝! :)
更新1:我把Input
在AddName parameters
。我還添加了Name
作爲instance
。但是這些更新沒有奏效。
更新2:我把Input
中的AddName parameters
中。我也將self.Input
更改爲self.Count
,所以不會混淆。我也將self.Name += Input
更改爲self.Name.append(Input)
。這些更新使代碼更容易理解並修復了一些問題,但while loop
不會運行。
你可以不帶必需的參數('self.AddName()')來調用你的函數,爲參數'Input'提供一個參數或者改變函數定義爲'def AddName(self):...'。 –
如果通過調用構造函數'x = Name()'來創建'Name'的實例,它會引發TypeError,因爲'AddName'需要一個你不給它的參數,所以我假設問題是你是從不創建實例。 –
@Jim這兩個建議都不起作用 – BradTheBrutalitist