python版本:3.6.1
练习24.更多练习
这一个练习作者本人在下面向读者提出并回答了一个问题:
为什么你给变量叫 jelly_beans
但是后面又用的是 beans
这个名字? 这是函数如何运行的一部分。记住,在函数内部变量是暂时的。当你返回它的时候,它可以被分配给一个变量以便之后使用。我只是创建了一个新的变量 beans
来保存返回的值。
如上图所示,secret_formula由一个变量定义,一开始变量名称是started,started的值会影响下面三个变量jelly_beans,jars,crates的值,最后返回的也是这三个变量的值,started的值没有在用户端体现出来。
而在最后一句,定义secret_formula的变量名称发生了改变,变为了start_point,并且整个secret_formula(start_point)与beans,jars,crates三个变量相关联。
但是如上图所示,经过测试,这些变量名称的改变并没有造成实质上的影响。
无论是secret_formula(started)对应的jelly_beans,jars,crates,还是secret_formula(start_point)对应的beans,jars,crates,甚至是secret_formula(started)对应的jars,helly,crates,没有任何实质上区别。这些变量的名称可以随意改变,但是运行过程,运行的逻辑不会发生改变。
我们可以把这种对应关系写成:
def 关联词(核心变量):# 其中关联词必须是(abc_abc)的形式
变量甲,变量乙,变量丙=关联词(核心变量)
关联词叫什么名字不重要,核心变量叫什么名字也不重要,变量甲,变量乙,变量丙叫什么名字还是不重要,这其中最重要的是它们之间的位置关系,无论名字是张三还是李四,只要他站在变量甲的位置,他就只是变量甲。
我自己的思考:这种在一个程序中重复使用同一关联词的情况,应该比较少见,其实际意义是为了让不同的变量名称使用同一个运算逻辑,比如,快乐(核心变量)=100,幸福(核心变量)=70,运算逻辑是相同的,但是数值结果不一样。