2016-12-12 112 views
0

我宣佈我的Customer類,並嘗試從一個類的實例,我的方法get_place_in_queue工作正常,但是當我運行get_nr_errands它與錯誤craches提取數據:的Python 3.5.2 NameError

"name 'nr_errands' is not defined" 

我的代碼到目前爲止:

class Customer: 
    def __init__(self,index_number,place_in_queue,nr_errands): 
     self.index_number=index_number 
     self.place_in_queue=place_in_queue 
     self.nr_errands=nr_errands 

    def get_place_in_queue(self): 
     return place_in_queue 

    def get_index_number(self): 
     return index_number 

    def get_nr_errands(self): 
     return nr_errands 
test=Customer(2,4,5) 
test.get_nr_errands() 
+6

應該是'return(self.nr_errands)'; '__init__'中的'nr_errands'設置在實例上,您需要通過'self'獲取它。其餘的同樣如此。 –

+4

很確定'get_place_in_queue' *不工作,除非你碰巧有一個名爲'place_in_queue'的全局變量。當然,你根本不需要任何這些方法。 –

+2

不要與'return'一起使用parens,它暗示它們有效果。只需'返回self.nr_errands'。 – RemcoGerlich

回答

2

你忘了使用self訪問實例變量。你需要:

class Customer: 
    def __init__(self,index_number,place_in_queue,nr_errands): 
     self.index_number=index_number 
     self.place_in_queue=place_in_queue 
     self.nr_errands=nr_errands 

    def get_place_in_queue(self): 
     return self.place_in_queue # <-- here 

    def get_index_number(self): 
     return self.index_number # <-- here 

    def get_nr_errands(self): 
     return self.nr_errands # <-- here