zoukankan      html  css  js  c++  java
  • Python学习之路5

    函数

    定义方式:

    def func():
        "这里面写函数的描述"
        这里写代码
        return x    #如果没有返回值就叫"过程",函数和过程的区别就是有无返回值
    

    实例

    def fun1():
        "这里是测试"
        print('这是第一个函数')
        return 0
    
    fun1() #调用函数
    

    函数传参

    def test(x,y,z):
        print(x)
        print(y)
        print(z)
    
    test(3,3,5) #这样传的参数叫做位置参数, 位置是一一对应的
    test(x=5,y=4,z=3) #这样传的参数叫做关键参数, 位置可以不用一一对应
    

    这里需要注意的是,关键参数是不能写在位置参数前面的。
    例如 test(x=4,5,5) 这样x是用了关键参数,y和z用了位置参数,这样就是错的。
    但是 test(3,y=4,z=6) 这样位置参数x在关键参数y和z的前面,这样就是可以的。
    同理 test(3,z=6,y=4) 这样也是可以的。

    参数组
    如果我要传入的参数数量不固定,就在形参列表里写 *变量名 来实现。

    def test(*args):
        print(args) #打印出来的是一个元组
    
    test(3,3,5) #这样我传多少个参数都没问题了
    test(*[3,4,5,6,6,4]) #这是第二种传值方式
    

    传入字典

    如果我想传入字典就在形参的位置用 **变量名 来实现

    def test(**args):
        print(args) #打印出来的是一个字典
    
    test(name='vector',age=3)
    

    高阶函数(满足下列条件之一就是高阶函数)

    a:把一个函数名当作形参传给另一个函数(在不修改被装饰函数源代码的情况下修改其功能,但是调用方式变了)

    def bar():
    	print('this is bar...')
    bar()
    print('----------------------------------')
    def test(func): #在这里增加了功能
    	print(func)
    test(bar)  #但是这里修改了调用方式

    b:返回值中包含函数名(不修改函数的调用方式,而修改函数功能)

    def bar():
    	print('this is bar...')
    bar()
    print('----------------------------------')
    def test(func):   #在这里增加了功能
    	print(func)
    	return func		#这里返回了函数地址
    bar = test(bar)   #将函数地址赋给一个变量,该变量和传入函数同名
    bar()		#这个变量加上括号,就可以当函数用了,同时又没有修改函数的调用方式
    

    嵌套函数

    x = 1
    def test1():
    	def test2():
    		def test3():
    			x = 3
    			print(x)
    		test3()
    	test2()
    test1()
    

    像这样在一个函数里面再定义一个函数就叫做嵌套函数。

  • 相关阅读:
    ServiceModel 元数据实用工具 (Svcutil.exe)
    SvsUtil.exe生成服务文件
    WCF经典代码
    Redis以服务的形式启动
    WinForm下的Nhibernate+Spring.Net的框架配置文件
    Bootstrap 简介二
    Bootstrap 简介
    CodeMatic动软自动生成Nhibernate
    redis.conf配置项说明
    一.RocketMQ消息中间件 windwos使用
  • 原文地址:https://www.cnblogs.com/vector121/p/7562265.html
Copyright © 2011-2022 走看看