首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么不打印None然后打印7呢?Python

为什么不打印None然后打印7呢?Python
EN

Stack Overflow用户
提问于 2017-11-04 07:14:36
回答 5查看 63关注 0票数 0

所以我有这个代码,我叫我笨蛋哈哈,但我不能让这个打印没有7。

代码:

代码语言:javascript
复制
def function(parameter):
    parameter = parameter + 1
parameter = 6
print(function(parameter))
print(parameter == 7)

我需要知道如何更改与函数中的参数同名的变量。

任何帮助都是非常感谢的,如果你不理解这个问题,我很乐意解释更多。

EN

回答 5

Stack Overflow用户

发布于 2017-11-04 07:21:51

它打印None,因为您的function()不返回任何内容。

它打印False是因为parameter (当前为6)不等于7

要更改被局部变量屏蔽的全局变量,请使用globals()函数:

代码语言:javascript
复制
def function(parameter):
    globals()['parameter'] += 1
票数 2
EN

Stack Overflow用户

发布于 2017-11-04 07:24:52

因为我真的讨厌全局变量,所以我会这样做:

代码语言:javascript
复制
def function(parameter):
    return parameter + 1
parameter = function(6)
print(parameter)
print(parameter == 7)

输出

代码语言:javascript
复制
7
True

基本上,通过指定一个与参数同名的变量并分配函数,您可以更改parameter,就好像它是同一个变量一样。请注意,事实并非如此,它实际上不是同一个对象。但是,如果您的目标是使用相同的名称,那么它是可行的。

票数 1
EN

Stack Overflow用户

发布于 2017-11-04 07:16:53

parameter定义为全局,并且不实际将其作为参数传递:

代码语言:javascript
复制
def function():
    global parameter
    parameter += 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47105636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档