class Restaurant(): def __init__(self, restaurant_name, cuisine_type):
self.restaurant_name = restaurant_name self.cuisine_type = cuisine_type
def describe_restaurant(self): return self.restaurant_name+"is a good restaurant.Its
cuisine is"+self.cuisine_type def open_restaurant(self): return self.restaurant_name+"now
is work" class IceCreamStand(Restaurant): def __init__(self, restaurant_name,
cuisine_type,*flavors): super().__init__(restaurant_name,cuisine_type)
self.flavors = flavors def icelist(self): for sweet in self.flavors: print(self.restaurant_name+sweet)
return '' ice = IceCreamStand("sweeet","冰淇凌",'aa','bb') print(ice.icelist())

在做python练习题的时候,遍历列表后发现输出结果带个none,非常烦躁。
查了许多方法,发现是因为有return返回值,如果不设置的话就会返回none,最直接的办法就是像上面一样,设置为空的字符串。但是感觉很难受,所以我把for循环去掉,然后把return修改了一下
return self.restaurant_name+str(self.flavors)
改成直接返回值了,而不是先遍历出数据再返回值,不过感觉还是非常不舒服,但是目前来说没有找到更好的方法了,等想到更好的方法回来修改一下!
差不多10分钟,我就又回来了,首先呢,self.flavors是一个元组,我之前一直以为是列表的。
说下方法,就是把元组给遍历出来,然后把他的值储存起来就可以了。

b = ""
for i in range(0,len(self.flavors)):
c = self.flavors[i]
b = b + c
if i != len(self.flavors) -1:
b = b+","
return b
#修改return为self.restaurant_name+b即可

元组的读取还是一样的都是xxx[?]进行读取,然后取一个变量等于这个值不断向上增加即可,后面的那个if是判断增加逗号的,显得更好看,为什么要加if是因为如果不加的话,那最后一个值也会加上,
sweetaa,bb,
输出这样的结果,非常难看,而如果加上判断
sweetaa,bb
输出这样的结果,还可以接受的,哈哈。有简单的方法可以在底下评论指出!

最后修改:2021 年 04 月 20 日 10 : 37 AM
如果觉得我的文章对你有用,请随意赞赏