Python自学笔记(12day)

函数的解释

a=1
def func():
    a+=1
    print(a)
func()

#func():意思就是,我调用函数,所得到什么结果?然后去调用的函数中去找。
#:结果:2
a=1
def func():
    a+=1
    return a
func()

#调用函数,得到a的值2,此时func()结果为2,但是没有打印,所以啥都没有,加上一个#print(),就好了

(1)当函数形参含有默认参数为可变数据类型时,每次调用同一个参数.

def func(l=[]):
    l.append(l)
    print(l)
func()
func()
func()


#输出:[1],[1,1],[1,1,1]

(2)函数的命名空间:

  (1)全局命名空间 :就是非函数内部的命名空间

  (2)局部命名空间:函数内部的命名空间

  (3)内置命名空间:解释器自带的

注意:1.  全局变量不可以使用局部变量

   2.  局部变量可以使用去那句变量,但是不可以使用全局变量中大的不可变数据类型,如果想用,需要再程序开始时加上一个global

   3.  各函数的局部变量之间相互独立,互补影响。

a=1
def  func():
    a=2
print(func())

#输出:1,局部变量不可用全局变量中不可变的数据类型。
a=1
def func():
    global a      #我将要对a进行修改
    a=2
print(func())

#输出:2

一般来说不建议使用global,因为当代码较多时,容易出现出现问题,那想要再局部中使用a,又想要修改a的值如何做到?

a=1
def func(a):
    a=2
    return a
a=func(a)
print(a)

(3)   对于全局作用域中查找命名变量的名字用global()

  对于本地作用域中查找名字用locals()

a=1
b=2
def fun(c):
    x="aaaa"
    y="bbbb"
    print(locals())
fun(c)
print(gloabl())

#输出:{"x":"aaaa","y":"bbbb"}
 #           {"a":1,"b":2}    

 

posted @ 2018-09-17 21:37  诺诺诺亚索隆  阅读(184)  评论(0编辑  收藏  举报