无法理解Python中的函数参数

时间:2017-05-17 14:27:07

标签: python function

当我运行该函数时,我不明白传递的变量是如何变化的。这些值最初设置为None,因为我希望一旦我运行该函数它们就会改变,但没有任何反应。所以我显然做错了什么。我对Python很新,并且会喜欢一些帮助。

def askUser(number_STRING, digits, array_NUM, chars):

  print ("NOTE: Program can only convert mm, cm, m, and km")
  number_STRING = raw_input("Type the number (9KM, 30M exactly like 
  that) you would like to convert to centimeters.")
  digits = int(filter(str.isdigit, number_STRING))
  array_NUM = len([c for c in number_STRING if c.isdigit()])
  chars = str(number_STRING[array_NUM:])

def main():

  number_STRING = None
  digits = None
  array_NUM = None
  chars = None

  askUser(number_STRING, digits, array_NUM, chars)

  print chars
  print array_NUM
  print digits

main()

2 个答案:

答案 0 :(得分:0)

在函数中,变量是作为局部变量的treatet。声明全局变量使用global语法

e.g。

def a(b):
    global c
    c = c + b

答案 1 :(得分:0)

How do I pass a variable by reference?

我强烈建议您阅读this article about python "names" vs other languages' variables。它应该可以帮助您避免将来出现类似的问题。