函数不会存储值

2024-04-18 18:25:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个带有函数的Python脚本。你知道吗

下面的代码按预期工作,它打印3。你知道吗

def function(a,b):
  k = a+b
  print(k)

a = 1
b = 2
function(a,b)

但是当我像这样把print语句移到函数外时,它就不起作用了。你知道吗

def function(a,b):
  k = a+b

a = 1
b = 2
function(a,b)

print(k)  # -> NameError: name 'k' is not defined

关于如何在函数中不包含print语句并且仍然让代码正常工作,有什么想法吗?你知道吗


Tags: 函数代码name脚本isdefnotfunction
2条回答

k是函数内部定义的局部变量。你知道吗

案例1:退回即可:

def function(a,b):
    k = a+b
    return k # just return, does not make it global

a = 1
b = 2
k = function(a,b)
# 3
print(k) # variable was returned by the function

案例2:全球化:

def function(a,b):
    global k #makes it global
    k = a+b

function(a,b)
print(k) # it is global so you can access it

请阅读更多here

与其设置一个全局变量(全局变量通常是坏的),为什么不返回结果并打印出来呢?你知道吗

像这样的

def function(a,b)
  return a+b

print(function(1,2))

相关问题 更多 >