Python 传递参数而不是全局参数
我使用Python已经有一段时间了,但我从来没有真正学会如何传递参数,而且我养成了使用全局变量的坏习惯,但现在我正在尝试学习,但进展并不顺利。有人能发现我做错了什么吗 代码的简化版本:Python 传递参数而不是全局参数,python,function,parameters,Python,Function,Parameters,我使用Python已经有一段时间了,但我从来没有真正学会如何传递参数,而且我养成了使用全局变量的坏习惯,但现在我正在尝试学习,但进展并不顺利。有人能发现我做错了什么吗 代码的简化版本: clickLoad = 0 def get_length(clickLoad): listLength = 305 #(Sample Value) if listLength < 101: clickLoad = 0 elif 100 < listLe
clickLoad = 0
def get_length(clickLoad):
listLength = 305 #(Sample Value)
if listLength < 101:
clickLoad = 0
elif 100 < listLength < 201:
clickLoad = 1
elif 201 <= listLength < 301:
clickLoad = 2
elif 301 <= listLength < 401:
clickLoad = 3
return clickLoad
def load_more(clickLoad):
print(clickLoad) # Testing value, prints 0
while clickLoad < 0:
# Do some stuff
clickLoad -= 1
return clickLoad
get_length(clickLoad)
load_more(clickLoad)
clickLoad=0
def get_长度(单击加载):
listLength=305#(样本值)
如果listLength<101:
单击加载=0
elif 100 elif 201由于不再使用“全局”,因此单击加载时所做的更改仅在函数内部进行。返回clickLoad很好,但忘记了重新影响全局变量clickLoad的新返回值(它仍然是全局变量,因为您可以在脚本中的任何位置访问它)
所以,这应该行得通
clickLoad = 0
def get_length(clickLoad):
listLength = 305 #(Sample Value)
if listLength < 101:
clickLoad = 0
elif 100 < listLength < 201:
clickLoad = 1
elif 201 <= listLength < 301:
clickLoad = 2
elif 301 <= listLength < 401:
clickLoad = 3
return clickLoad
def load_more(clickLoad):
print(clickLoad) # Testing value, prints 0
while clickLoad < 0:
# Do some stuff
clickLoad -= 1
return clickLoad
clickLoad = get_length(clickLoad)
clickLoad = load_more(clickLoad)
clickLoad=0
def get_长度(单击加载):
listLength=305#(样本值)
如果listLength<101:
单击加载=0
elif 100clickLoad=0
def get_长度(单击加载):
listLength=305#(样本值)
如果listLength<101:
单击加载=0
elif 100 elif 201当函数返回一个值时,表示该值被提供给调用函数以供进一步使用。但它并没有写入全局变量
要获得您想要的,请尝试:
clickLoad = get_length(clickLoad)
clickLoad = load_more(clickLoad)
这是对函数如何工作的非常基本的理解,您应该阅读有关它的教程。这是一个关于变量作用域的相当基本的问题,大多数python教程都涉及这一主题,您可能应该找到一个并通读它。
clickLoad = get_length(clickLoad)
clickLoad = load_more(clickLoad)