[Python]1/14/15 2:01 PM

不能给Python的函数名复制,否则将无法访问该函数直到重启Python

 

 

函数的局部变量包括函数的参数变量以及在函数当中定义的变量,当函数结束后局部参数也将被自动删除

 

声明一个全局变量之后,在函数中调用这个变量必须加上global,不然这个函数中的这个变量会被视为声明一个同样名字的局部变量

 

引用参数传递

 

# reference.py

def set1(x):

x = 1

 

 

函数set1想将传入的变量的值设置为1,但如果你尝试运行它,结果并不符合预期:

 

>>> m = 5

>>> set1(m)

>>> m

5

 

 

  1. 将5赋给m。
  2. 调用set1(m):将m的值赋给x,这样m和x都指向5。
  3. 将1赋给x,结果如图5-4所示。
  4. 函数set1结束后,x被删除。

 

在函数set1中,根本不能访问变量m,因此无法修改它指向的值。

 

正确的解决方式是:

 

def set1(x):
x=1
return x

>>> m=5
>>> m = set1(m)
>>> m
1

 

 

 

 

 

 

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.