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

我使用Python已经有一段时间了,但我从来没有真正学会如何传递参数,而且我养成了使用全局变量的坏习惯,但现在我正在尝试学习,但进展并不顺利。有人能发现我做错了什么吗

代码的简化版本:

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 100elif 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 100elif 201当函数返回一个值时,表示该值被提供给调用函数以供进一步使用。但它并没有写入全局变量

要获得您想要的,请尝试:

clickLoad = get_length(clickLoad)
clickLoad = load_more(clickLoad)

这是对函数如何工作的非常基本的理解,您应该阅读有关它的教程。

这是一个关于变量作用域的相当基本的问题,大多数python教程都涉及这一主题,您可能应该找到一个并通读它。
clickLoad = get_length(clickLoad)
clickLoad = load_more(clickLoad)