函数不会存储值

时间:2019-11-24 20:12:12

标签: python scope

我正在尝试使用函数编写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语句并仍然使此代码正常工作的任何想法?

2 个答案:

答案 0 :(得分:4)

{ "extends": ["airbnb", "prettier", "prettier/react"], "plugins": ["prettier"], "parser": "react-scripts/node_modules/babel-eslint" } 是在函数内部定义的局部变量。

案例1:只需将其退回:

k

案例2:使其全球化:

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

请阅读更多here

答案 1 :(得分:4)

而不是设置全局变量(全局变量通常很糟糕),为什么不返回并打印结果?

类似

def function(a,b)
  return a+b

print(function(1,2))