我正在研究一個涉及創建和使用一個類與幾種方法的python assingment。我不會發布整件事情,因爲如果我展示一個我想要做的事情的例子,指出我的問題會更簡單。問題以外的python類調用方法
class Fruit(self,color,name):
def __init__(self, color, name):
self.color = color
self.name = name
def return_list(self, index):
print fruit_list[index]
fruit_list = []
fruit_1 = Fruit("red", "apple")
fruit_list.append(fruit_1.color)
fruit_list.append(fruit_1.name)
所以上面的代碼工作。我的問題是如何return_list工作的類以外使用時,像這樣:
fruit_choice = int(raw_input("What fruit would you like?"))
Fruit.return_list(fruit_choice)
基本上我試圖創建一個名爲方法時,輸出列表中的索引處的項目,該指數爲由用戶輸入指定(即fruit_choice = 0,打印項目是列表的第一個元素)。
我對類有基本的瞭解,但得到一個有點模糊的方法來像return_list一樣工作有點不直觀。該錯誤消息我得到:
Fruit.return_list(fruit_choice)
TypeError: unbound method return_list() must be called with Fruit instance as first argument (got int instance instead)
我知道,如果我得到的代碼工作的輸出將是「紅」,如果輸入爲0,而不是「紅,」蘋果」,但是這是一個問題,另一個時間。
如果有人能指出我什麼我做錯了創建/調用return_list方法,請和感謝。
'Fruit.return_list(fruit_choice)'應該是'fruit_1.return_list(fruit_choice)'。你必須將該方法附加到一個實例(這就是消息所說的)。但之後,它不會工作,因爲'fruit_list'不是該類的成員(並且它不應該是因爲你不需要水果對象中的水果列表!)。學習OO編程更多... –