正如其他回答的人所说,您可以将结果累加到一个列表中并返回该列表。不过,另一种方法是将return替换为yield,这将导致函数返回一个iterable类型的对象,该对象在您决定稍后迭代它时生成所生成的项(可能使用for循环)。在
下面是如何在代码中使用它:import csv
def pass_username():
with open('test.csv', 'r') as csvfile:
spamreader = csv.reader(csvfile, delimiter=',')
for row in spamreader:
yield row[0]
username_generator = pass_username()
# iterate through the usernames with a for loop
for name in username_generator:
print name
# call the list constructor which causes it to produce all of the names
print list(pass_username())
请记住,用户名是根据需要生成的,因此您可以,例如,执行username_generator.next(),这样就可以生成下一个用户名,而不必生成所有用户名。在