首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python中创建块范围的变量?

如何在Python中创建块范围的变量?
EN

Stack Overflow用户
提问于 2016-06-29 00:28:47
回答 2查看 930关注 0票数 0

使用下面的Perl代码:

代码语言:javascript
运行
复制
$a = 5;

if($a == 5)
{
    print $a;
    my $a = 8;
    print $a;
}

print $a;

这会输出585,因为my $a会创建一个新的词法变量,该变量的作用域是if块。

我想在Python中做同样的事情,但这是:

代码语言:javascript
运行
复制
a = 5;
b = 9;

if a == 5:        
    print "inside function", b
    b = 'apple';

print b

输出

代码语言:javascript
运行
复制
inside function 9
apple

if中会覆盖变量b。有没有办法在if语句中创建一个局部变量b?我想在if中使用相同的变量名和局部作用域。

EN

回答 2

Stack Overflow用户

发布于 2016-06-29 01:00:46

这两个代码并不等价;在Perl代码中,if块中的my创建了一个全新的变量,当包含的块结束时,该变量就会超出作用域。

您可以在Python中使用上下文管理器执行类似的操作,但语法会有很大不同。

票数 0
EN

Stack Overflow用户

发布于 2016-06-29 01:16:25

这就是你要找的吗?

代码语言:javascript
运行
复制
a = 5
b = 9

def my_func(a):
    if a == 5:        
        b = 'apple'
        print("inside function: ", b)

my_func(a)
print("outside function: ", b)

> inside function: apple
> outside function: 9

b是函数my_func中等于apple的局部变量,不影响等于9的全局变量b

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38081572

复制
相关文章

相似问题

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