Python函数定义全局参数

时间:2012-10-04 16:36:27

标签: python

有人可以解释为什么gloabl变量x&在printfunc中无法识别y,

code.py

global x
global y

def test(val_x=None,val_y=None)
    x = val_x
    y = val_y
    printfunc()

def printfunc():
   print('x',x)
   print('y',y)

if __name__ = '__main__':
   test(val_x=1,val_y=2)

2 个答案:

答案 0 :(得分:2)

global放在test()内。

函数内部使用

global,以便我们可以更改全局变量或创建添加到全局命名空间的变量。 :

   def test(val_x=None,val_y=None):
        global x
        global y
        x = val_x
        y = val_y
        printfunc()

答案 1 :(得分:0)

在代码块内部使用global关键字来指定,声明的变量是全局的,而不是本地的。所以在你的函数中移动global

def test(val_x=None,val_y=None): #you also forgot ':' here
  global x, y
  x = val_x
  y = val_y
  printfunc()

def printfunc():
  global x, y
  print('x',x)
  print('y',y)