Python入门-全局变量、main函数

一、全局变量

在函数外面声明的变量称为全局变量,程序中的任何函数都可以读取它。但是,在函数中给全局变量重复赋值需要特小心。如以下代码:

#global.py
name='Tony'
def say_hello():
    print('Hello '+name+'!')
def change_name(new_name):
    name=new_name
第一个name变量是全局变量,因为它是函数外面声明的。函数say_hello()读取变量name的值,将其打印到屏幕上,这和预期的一致:

>>> say_hello()
Hello Tony!

然而,调用change_name时结果却不符合预期:

>>> change_name('Evan')
>>> say_hello()
Hello Tony!
全局变量name的值并没有发生变化,依然是Tony。问题在于Python将函数change_name中的变量name视为局部变量。

要访问全局变量,必须使用关键字global;

#global_correct.py
name='Tony'
def say_hello():
    print('Hello '+name+'!')
def change_name(new_name):
    global name
    name=new_name

这两个函数均符合预期:

>>> say_hello()
Hello Tony!
>>> change_name('Evan')
>>> say_hello()
Hello Evan!

二、使用main函数

编写相应Python程序时,通常至少有一个函数:main()。因为根据约定,main()函数被认为是程序的起点。例如:

#password.py
def main():
  pwd=input('What is the password?')
  if pwd=='intely':
      print('logging on...')
  else:
      print('Incorrect password.')
  print('All done.')


注意:所有的代码都位于函数头main后面,并缩进了。

运行该代码的时候,什么都不会发生,而只是出现一个提示符号。必须要输入main()来执行该代码。

结果:

>>> main()
What is the password?inte
Incorrect password.
All done.
>>> main()
What is the password?intely
logging on...
All done.


使用main函数的优点是:可以更轻松地反复运行程序,还可以传递输入值。


你可能感兴趣的:(Python)