【发布时间】:2018-11-12 04:21:38
【问题描述】:
在我的解释器中查看这段代码:
$ python3
Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
<<< first_list = [1,2,3,4,5,6]
<<< second_list = [101,202,303,404]
<<< first_list.reverse()
<<< print(first_list)
[6, 5, 4, 3, 2, 1]
<<< reverse(second_list)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'reverse' is not defined
<<<
在第一行和第二行,我定义了两个列表。然后我继续以两种不同的方式颠倒 first_list 和 second_list 的顺序。第一种反转成功,第二种被拒绝。
如果我要编写脚本(显然会被 Python 解释器拒绝),将变量作为参数放在 reverse 函数中是我最初自然会使用它的方式。
我正在学习的 Udemy 课程的讲师建议将变量放在函数前面,用点分隔。我知道计算机决定什么有效,什么无效。我只是想知道为什么,因为我的(错误的)方法来得这么自然。
为什么变量有时必须放在函数前面,而有时它可以作为参数放在函数内部?
我想我现在遇到的更重要的问题是:当我处理变量时,我怎么知道何时将变量放在外部和内部?
感谢您的关注。
【问题讨论】:
-
这个问题可能对stackoverflow.com/q/20981789/831878有帮助
-
你想要
list(reversed(second_list))吗? -
reversed是带有参数的内置函数。列表对象的reverse方法不接受任何参数并反转其绑定到的列表。对于最后一种情况,您只需要使用reversed(second_list)
标签: python function object methods