【发布时间】:2017-04-05 08:50:21
【问题描述】:
如果我将城市列表作为变量传递,则任务按预期完成。
def count_top_rt(tweet_set):
for tweet in tweet_set:
print(tweet)
tweet_set = ["Sydney", "London", "Paris"]
print(tweet_set)
如果我在函数定义中输入错误的参数名称,那么任务仍然完成,因为 tweet_set 变量是全局变量。
def count_top_rt(mis_typed_arguament):
for tweet in tweet_set:
print(tweet)
tweet_set = ["Sydney", "London", "Paris"]
print(tweet_set)
感觉没有正确传递参数是错误的。我有两个问题:
- 在第一个版本中,参数是否“正确”传递?
- 有哪些方法可以确保正确传递参数?
【问题讨论】:
-
永远不要对全局变量使用与局部变量相同的名称。那么这个问题永远不会发生。
-
如果您使用 PyCharm 或类似的 IDE,它会在您自动执行此操作时告诉您。
-
@kindall 第二个函数的问题不是他对全局和局部使用了相同的名称,而是
for循环没有使用它应该使用的局部变量。 -
你为什么在乎?您甚至不调用该函数。无论如何你最好不要使用全局变量。
标签: python python-2.7 arguments parameter-passing