class FoodExpert:
def init(self):
self.goodFood = []
def addGoodFood(self, food):
self.goodFood.append(food)
def likes(self, x):
return x in self.goodFood
def prefers(self, x, y):
x_rating = self.goodFood.index(x)
y_rating = self.goodFood.index(y)
if x_rating > y_rating:
return y
else:
return x
Sau khi tuyên bố lớp này, tôi đã viết mã này:Bản đồ phương pháp trong python
>>> f = FoodExpert()
>>> f.init()
>>> map(f.addGoodFood, ['SPAM', 'Eggs', 'Bacon', 'Rat', 'Spring Surprise'])
[None, None, None, None, None]
>>> f.goodFood
['SPAM', 'Eggs', 'Bacon', 'Rat', 'Spring Surprise']
Tôi không thể hiểu làm thế nào các chức năng bản đồ đang làm việc phía sau mui xe, tại sao là nó trả về một danh sách tất cả None
, nhưng khi tôi kiểm tra f.goodFood
các yếu tố đã được thêm vào đó?
Lưu ý rằng việc sử dụng 'bản đồ' như thế này là một ý tưởng tồi. Sử dụng vòng lặp 'for'; nó sẽ không tạo danh sách và nó sẽ hoạt động trong Python 3 mà không cần bạn quấn nó trong một cuộc gọi 'list'. – user2357112
(Bạn có mong đợi lệnh gọi 'map' trả về' f.goodFood' không? Nó không biết 'f.goodFood' có liên quan.) – user2357112
Để biết cách sử dụng này, bạn nên làm tốt hơn ' f.goodFood.extend (["spam", "trứng", vv]) ' – Daenyth