# -*- coding: utf-8 -*- # 本源代码展示: # 函数 #function 使用 def 关键字定义 def func(): #函数可以有doc,通过 [函数名.__doc__] 引用doc #文档字符串的惯例是一个多行字符串, #它的首行以大写字母开始,句号结尾。 #第二行是空行, #从第三行开始是详细的描述。 '''func的说明''' #函数参数,局部变量 def func1(x): x = 3 # 函数,global 关键字,这个语法非常容易迷惑 # 它覆盖掉了外面同名的变量x,y,z # 咱是不会使用这样的语法滴! def func2(): global x,y,z x = 5; # 默认参数,只有在末尾的那些参数才可以有默认值 # func3(a=3,c=5) 调用也是合法的,打印结果是 3 3 5,令人郁闷啊 def func3(a,b=3,c=4): print(a,b,c) #带返回值的函数 # 它也返回None def func4(): return "func4" # 空函数,很优雅 # 事实上任何函数,如果自己不指定返回值,都会隐含返回None def func5(): pass #################################################### func() print(func.__doc__) x=1 func1(x) print (x) # still 1 func2() print(x) # changed to 5 func3(3) func3(3,4) a = 2 # 直接在实参传递的时候指定要接收值的形参 # 下面这句跳过了b参数的传递,b是默认值 func3(a=3,c=5) # 3 3 5 #甚至可以这样写,orZ,没有天理了. func3(c=5,a=3) # 3 3 5 print ("a=",a) # a = 2,也就是说上面的语句func3(a=3,c=5) # 中的a=3,并未影响到a的值 -_-!! print(func4()) func5()