使用参数而不是python中函数中的局部变量之间有什么区别?



您何时会知道何时使用参数或局部变量(通过局部变量,我的意思是在示例2中声明的函数中声明的变量(?有时人们会制作本地变量,有时他们会在功能中使用参数。有什么区别?

def function(a, b):
    return a+b
function(2,3)

和:

def function():
    a = 2
    b = 3
    return a+b

这是一个非常简单的示例,但是如果函数要更大,您什么时候使用局部变量而不是参数?请帮助。

为了帮助回答这个问题,我想用一个示例回答。

函数可以被认为是可重复的说明。因此,我们可以具有称为fixCar()的函数。此功能基本上是我们机器人修复汽车的一组指令。我们想将汽车传递到机器人进行修复,因为我们不知道我们将要修复的机器人哪辆车,我们应该通过:

def fixCar(car):

这创建了一个要求,我们必须将汽车传递到机器人以修复,如果我们不将汽车传递到机器人,机器人将如何修复汽车?

要修复汽车,机器人需要拥有基本工具,确保我们每次都可以通过基本工具(def fixCar(car, tools)(将其传递,但是如果需要一组基本工具来修复任何汽车,则包括包括工具作为本地变量,我们无需每次指定它们:

def fixCar(car):
    tools = 'basic tools'

现在,无论我们经过什么汽车,机器人都可以使用基本工具。如果我们想给他们特殊的工具来开发特殊汽车,会发生什么?由于它可能是客户带来的特殊工具(想想高端汽车上的轮胎锁(,我们将不得不通过论证中的一组特殊工具将其传递给机器人:

def fixCar(car, specialTools):
    tools = 'basic tools'

但是,如果我们有时并非总是会传递某些工具,我们可以为参数设置默认设置。这使得specialToolsoptional argument使得该程序如果不传递任何内容,则不会抱怨,如果我们通过某些内容,则将使用specialTools

def fixCar(carType, specialTools=None):
    if specialTools:
        print('I have special tools to work with')
    else:
        print('I didn't receive any special tools, but that's okie')
    tools = 'basic tools'

总而言之,局部变量可以是该功能所需的某些东西,因此可以完成其工作。参数是"配置"以某种方式运行的函数,或者是该功能必须使用的"未知"因素。

最新更新