此代码有什么问题?我是python的新手,并且面向对象编码,我不知道如何访问这些值...
代码:
class Stock():
def __init__(self, foodArray, quantityArray):
self._foodArray = foodArray
self._quantity = quantityArray
def printStock(self):
for i in range(len(self._foodArray)):
print(self._foodArray[i] + ' ' + self._quantity[i])
预期: 1 b 2 c 4 x 100 等等...
答案 0 :(得分:1)
问题似乎在于您试图将字符串(食物)列表中的元素与数字(数量)列表中的元素“连接”在一起。假设两个数组的长度相同,并且您使用的是Python 3.6+,请使用以下命令:
class Stock():
def __init__(self, foodArray, quantityArray):
self._foodArray = foodArray
self._quantity = quantityArray
def printStock(self):
for i in range(len(self._foodArray)):
print(f'{self._foodArray[i]} {self._quantity[i]}')
如果您使用的是3.6之前的Python版本,请将print语句更改为:
print('{} {}'.format(self._foodArray[i], self._quantity[i]))
您甚至可以使用以下方法简化该方法:
def printStock(self):
for food, quantity in zip(self._foodArray, self._quantity):
print(f'{food} {quantity}')
>>> s = Stock(['apple', 'banana', 'coconut'], [1, 2, 3])
>>> s.printStock()
apple 1
banana 2
coconut 3