所以这是我的功能和一些信息:
此函数由另一个函数调用,因此返回result1将显示我想要的内容。 因此,在这个函数中,我希望能够在之后打印出result1然后for循环;但是,由于我无法将for循环放在return内,因此它总是会先打印for循环,然后再打印返回的result1。
注意:Dish_str()是另一个函数,我将其包含在底部
def Restaurant_str(self: Restaurant) -> str:
result1 = ("Name: " + self.name + "\n" +
"Cuisine: " + self.cuisine + "\n" +
"Phone: " + self.phone + "\n" +
"Menu: ")
for i in self.menu:
print(Dish_str(i))
return result1 + "\n\n"
这是结果:
Fried Chicken ($10.00): 1300.0cal
Name: KFC
Cuisine: American
Phone: 1112223333
Menu:
我想做的是使菜式出现在菜单之后。
我尝试使其工作的一种方法是将Dish_str()放入返回值中,使其看起来像这样:
return result1 + Dish_str(self.menu) + "\n\n"
对此,我将收到一条错误消息,该错误消息指出属性错误,该列表不包含属性名称,即使在for循环中它也可以工作。然后,我尝试仅执行Dish_str(self),这给了我一个无法连接列表的类型错误。
我试图使其工作的另一种方法也将for循环拆分为另一个函数,并让Restaurant_str()对其进行调用,但是可惜,没有用,因为我意识到这与调用Dish_str()完全相同另一个额外的功能。
以下是其他正在调用并被调用的函数:
def Dish_str(self: Dishes) -> str:
'''Returns a string that represents the dish name, price, and calories'''
result = self.name + " ($" + str("%.2f" % self.price) + "): " +
str(self.calories) + "cal"
return result
def Collection_str(C: list) -> str:
''' Return a string representing the collection
'''
s = ""
for r in C:
s = s + Restaurant_str(r)
return s
我只是通过以下方式打印收藏集:
print(Collection_str(C))
请问我是否需要澄清我在深夜写的内容,并且没有时间检查。感谢您的耐心配合和提前帮助。
答案 0 :(得分:0)
只需将字符串IQueryable<T>
添加到dish
,result1
的末尾
result1 = result1 + Dish_str(i)
有什么帮助吗?