""" # 函数就是有返回值的一个过程 def method1(x): ''' 第一个函数测试 :param x: 入参 :return: 返回值 ''' x = 2 * x + 1 return x # 打印函数的返回值 print(method1(3)) # 打印函数的内存地址 print(method1) # 函数参数 # 形参变量只有在被调用时才会分配内存单元,调用结束,即刻释放,所以形参只有在函数内部有效 def method2(x, y, z): print(x) print(y) print(z) # 位置参数必须一一对应,不能多不能少 method2(1, 2, 3) # 关键字传值 无须一一对应,不能多不能少 method2(y=2, x=1, z=3) # 混合使用,位置参数必须在关键字参数的左边 这样写method2(1, y=2, 3)❌ 参数使用的基本原则 method2(1, y=2, z=3) """ """ # type 默认参数,调用的时候可以传值也可以不传值 def handle(x, type='test'): print(x) print(type) handle('hello', type='word') """ """ # 参数组**字典 *列表 def method(x, *args): print(x) print(args[0]) # method(1, 2, 3, 4, 5, 6, 7) # 参数list = ([2, 3, 4]),list包含一个元素 method(1, [2, 3, 4]) # 参数list = (2, 3, 4) list包含三个元素 method(1, *[2, 3, 4]) """ """ # 参数组**字典 *列表 def method(x, **kwargs): print(x) print(kwargs) # y=2, z=3 默认为key:value的形式 method(1, y=2, z=3) # method(1, y=2, z=3, z=3)#会报错:一个参数不能传两次 """ """ # 字典和列表一起作为参数的时候,列表必须在字典前面,因为在传参数的时候,位置参数必须要在关键字参数的左边 def method(x, **kwargs, *args) 这样定义❌ def method(x, *args, **kwargs) """ """ def method(x, *args, **kwargs): print(x) print(args) print(kwargs) method(1, 2, 3, 4, 5, 6, 7, key1=1, key2='2') """
函数即变量,不调用的时候,里面的过程不执行,类似于普通的变量定义了但是没有引用是一个道理