HirasawaYui 发表于 2020-4-17 19:37:31

关于global函数

b = 50
c =100
def a(b,c):
    global b
    global c
    b = 100
    c = 50

a(b,c)
print('输出全局变量b:{}'.format(b))
print('输出全局变量c:{}'.format(c))
print('输出global变量b:{}'.format(b))
print('输出global变量c:{}'.format(c))


这里报错:“name 'b' is parameter and global”
是什么意思?为什么?怎么改?

qiuyouzhi 发表于 2020-4-17 19:54:42

你把b,c当成参数传入了,就已经可以操作,不需要global了
而且,global是关键字,不是函数。

HirasawaYui 发表于 2020-4-17 19:55:29

而且我发现把两个a(b,c)中的b,c去掉就可以运行了,为什么?

HirasawaYui 发表于 2020-4-17 20:05:16

qiuyouzhi 发表于 2020-4-17 19:54
你把b,c当成参数传入了,就已经可以操作,不需要global了
而且,global是关键字,不是函数。

我的意思是要把b和c变成全局变量,网上的解释是global作用的变量不能在子函数中传递,这里的子函数指的是哪里?

qiuyouzhi 发表于 2020-4-17 20:07:54

HirasawaYui 发表于 2020-4-17 20:05
我的意思是要把b和c变成全局变量,网上的解释是global作用的变量不能在子函数中传递,这里的子函数指的是 ...

不清楚。
总之,要么传参,要么global。

heidern0612 发表于 2020-4-17 20:23:23

你的形参和实参是一个。

python不能这么赋值。

_荟桐_ 发表于 2020-4-17 20:28:52

HirasawaYui 发表于 2020-4-17 20:05
我的意思是要把b和c变成全局变量,网上的解释是global作用的变量不能在子函数中传递,这里的子函数指的是 ...

把他当参数传进去就相当于global了
子函数应该是指内嵌函数吧
内嵌函数用nonlocal
页: [1]
查看完整版本: 关于global函数