一尘不染

Python-返回函数的输出与打印输出有何不同?

python

def autoparts():
    parts_dict = {}
    list_of_parts = open('list_of_parts.txt', 'r')

    for line in list_of_parts:
        k, v = line.split()
        parts_dict[k] = v

    print(parts_dict)

>>> autoparts()
{'part A': 1, 'part B': 2, ...}

此函数创建字典,但不返回任何内容。但是,由于添加了print,因此在运行函数时将显示函数的输出。进return东西和进东西有什么区别print


阅读 716

收藏
2020-02-10

共1个答案

一尘不染

打印只是将结构打印到输出设备(通常是控制台)上。而已。要从你的函数返回它,你可以执行以下操作:

def autoparts():
  parts_dict = {}
  list_of_parts = open('list_of_parts.txt', 'r')
  for line in list_of_parts:
        k, v = line.split()
        parts_dict[k] = v
  return parts_dict

为什么要回来?好吧,如果你不这样做,该词典将死亡(收集垃圾),并且在此函数调用结束后将无法再访问该词典。如果返回该值,则可以使用它进行其他操作。如:

my_auto_parts = autoparts() 
print(my_auto_parts['engine']) 

看看发生了什么事?调用了autoparts(),它返回了parts_dict,我们将其存储在my_auto_parts变量中。现在,我们可以使用此变量访问字典对象,即使函数调用结束,它也可以继续存在。然后,我们用键“ engine”在字典中打印出对象。

要获得良好的教程,请查看python入门。非常容易遵循。

2020-02-10