day18 函数定义、参数;名称空间;全局变量及局部变量。

Python之路,Day6 = Python基础6

函数的定义

def func1():                # 定义一个函数,名字叫func1,括号中没有传入参数
    print('hello word')     # 这里是 func1 的内容,可以定义为任意代码
    return 1                # return 是返回的意思,后面是返回值,调用时可以用参数接收,返回值的内容可以为任意形式
# python执行的时候只会检查函数里面是否有语法问题,没有的话,过。。。
# 函数中可以有多个return, 但是执行到return时,函数停止执行,并返回结果,也就是说,每个函数只会有一个返回值
# 每个函数都有返回值,如果不写,默认为 None 。

函数的参数

#   第一种情况
def func1(x, y, z):         # 这个函数需要你在使用它的时候传入三个参数
    print(x, y, z)

func1(1,2,3)                # 这种调用时传入的参数需要与上面值为一一对应。
结果:1, 2, 3
func1(z = 3, y = 2, x = 1)  # 这种调用方式已经指定了各个参数分别对应给谁,所以可以不必一一对应位置。
结果:1, 2, 3
#   第二种情况
def func2(x=1, y=2, z=3):   # 这个函数在你使用的时候,不是必需传入参数,如果不传入参数的话,那么默认为后面所赋值的内容。
    print(x, y, z)          

func2()
结果:1, 2, 3
func2(5, 6, 7)
结果:5, 6, 7

#   第三种情况
def func2(x,y,z=3):         # 两种方式可以合并使用,但是由默认赋值的参数,必需放在最后
    pass
#   第四种情况
def func3(*args):           # 当我们不知道需要传入多少个参数(1,2,3,4,5)的时候,可以一用 *args 作为参数,这个意思是,把所有的传入的值(所有只传值)作为一个元组保存在 args 中;
    pass                   
#   第五种情况
def func3(**args):          # 当我们不知道需要传入多少个参数(x=1,y=2)的时候,可以一用 **kwargs 作为参数,这个意思是,把所有的传入的值(所有只传值)作为一个字典保存在 **kwargs 中;
    pass 

名称空间
  内置名称空间
    系统自带:如,系统定义好的变量名、函数名、类名等。
  全局名称空间
    自定义的全局的:如,自定义好的变量名、函数名、类名等但他们所定义的位置不应该属于其他的类或方法中。
  局部名称空间
    自定义的局部的:如,自定义好的变量名、函数名、类名
注:三者的加载顺序,内置名称空间、全局名称空间、局部名称空间

全局变量及局部变量
全局变量:内置名称 + 全局名称
  作用域:作用与整个文件
局部变量:局部名称
  作用域:作用与当前的位置(类或方法等)及包含的子程序(位置或方法等)

原文地址:https://www.cnblogs.com/alwaysInMe/p/7003044.html