精华内容
下载资源
问答
  • 1. 根据字符串名称 动态调用 python文件内的方法eval(“function_name”)(参数) 2. 根据字符串 动态调用类中的静态方法,getattr(ClassName,”function_name”)(参数) 3. apply(functoin_name,parameters) ...
  • 使用字典调用函数 在上面模块的定义不变,但是在调用的时候,可以定义一个字典,根据字典的值来进行执行函数,如下所示: ? 1 2 3 4 5 6 >>> import attr ...

    使用字典来调用函数

    在上面模块的定义不变,但是在调用的时候,可以定义一个字典,根据字典的值来进行执行函数,如下所示:

    ?
    1
    2
    3
    4
    5
    6
    >>> import attr
    >>> d = {'kel':attr.kel,'smile':attr.smile}
    >>> d['kel']()
    this is a kel function
    >>> d['smile']()
    this is a smile function

    从而可以使用字典值来进行调用函数,以及模块变量。

    使用字符串:

    方法:getattr(object, str_ name)


    展开全文
  • 在前面的文章中我们已经说过函数定义时带星号参数的使用,也就是将实参收集成元组(一个星号)和字典(两个星号)。但在事实上也可以执行相反的操作,比如一个做加法的函数,def add(x, y),函数定义的时候是很常见的...

            在前面的文章中我们已经说过函数定义时带星号参数的使用,也就是将实参收集成元组(一个星号)和字典(两个星号)。但在事实上也可以执行相反的操作,比如一个做加法的函数,def add(x, y),函数定义的时候是很常见的形参定义,但是我们要相加的两个数在一个元组中param = (1, 2),调用的时候这样调用即可add(*param),表明我们传递的是一个元组对象,需要将元组中的数据传递给形参。写个简单的代码测试下:

    #! encoding=utf-8
    
    def test_add(x, y):
        return x + y
        
        
    if __name__ == "__main__":
        param = (1, 2)
        print test_add(*param)
        
    控制台:

    3

           当然函数调用时也可以使用带两个星号的实参,和一个星号的原理相同,只是传递的是一个字典对象给形参,需要注意的是在定义的形参变量名要和传递的字典对象中的key值是一样的,否则无法解析传递的字典。

    #! encoding=utf-8
    
    def test_add(x, y):
        return x + y
        
        
    if __name__ == "__main__":
        param = {'x' : 1, 'y' : 2}
        print test_add(**param)
        
    控制台打印:

    3

            其实调用的时候实参前面带星号和定义的时候形参前面带星号是一个互逆的过程,形参带星号,是需要将传递的数据打包成元组或者字典,调用时实参带星号,是要将传递的元组或者字典解析到形参中去。

            最后写一个两者结合的形式,加深下理解。代码如下:

    #! encoding=utf-8
    
    def test_all(tuple_str1, tuple_str2, dict_str1, dict_str2, dict_str3):
        return tuple_str1 + tuple_str2 + dict_str1 + dict_str2 + dict_str3
        
        
    if __name__ == "__main__":
        param_tuple = ('hello ', 'everyone ')
        param_dict = {'dict_str1' : 'this ', 'dict_str2' : 'is ', 'dict_str3' : 'test'}
        print test_all(*param_tuple, **param_dict)
        

    控制台信息:

    hello everyone this is test


    展开全文
  • 主要介绍了Python基于字典实现switch case函数调用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Python中的函数调用

    千次阅读 2020-01-11 23:26:22
    Python中的函数调用一、函数调用基础:定义与返回二、函数调用中的参数说明三、函数调用简化:lambda表达式3.1 lambda表达式基础3.2 lambda表达式应用场景3.2.1 带判断的lambda3.2.2 列列表数据按字典key的值排序 ...


    Python中的函数调用

    一、函数调用基础:定义与返回

    知识点:

    • def定义函数
    • 函数注释的书写方式,help()函数可以查看定义函数的注释
    • return返回的多个值是元组类型
    • 调用函数取得的返回值的存储方式
    def add(a, b):
        """
        这是函数写注释的地方,return后面可以跟多个值(元组、列表、字典、字符串等),但是用元组的形式返回所有的值
    
        :param a:
        :param b:
        :return:
        """
        return a + b, a*b, '我是字符串'
    
    
    # 函数与主代码中间根据格式规范最好空两行
    help(add)  # 查看函数的说明文档
    c = add(1, 3)  # (4, 3, '我是字符串')
    # 返回的值可以直接进行拆包,字典也可以直接拆除key和value
    value1, value2, string1 = add(1, 3)
    print(value1)  # 4
    print(type(c))  # <class 'tuple'> 返回的是元组类型
    

    二、函数调用中的参数说明

    知识点:

    • 固定参数:好处处在于实参顺序不必与形参一致
    • 默认参数:如果实参不传入,则按照缺少默认来
    • 可变参数(返回元组类型):传进的所有参数都会被args变量量收集,它会根据传进参数的位置合并为⼀个元组(tuple)
    • 可变参数(返回字典类型):
    def func_paramTest01(a, b, string='这是加法运算', *args):
        """
        1、固定参数:好处处在于实参顺序不必与形参一致
        2、默认参数:如果实参不传入,则按照缺少默认来
        :param a:
        :param b:
        :param string:
        :param args:
        :return:
        """
        return a, string
    
    
    c = func_paramTest01(b=2, string='你被骗了', a=1)  # (1, '你被骗了')
    d = func_paramTest01(b=2, a=1)  # (1, '这是加法运算')
    
    def func_paramTest02(*args):
        """
        3、可变参数:传进的所有参数都会被args变量量收集,它会根据传进参数的位置合并为⼀个元组(tuple),args是元组类型,这就是包裹位置传递。
        :param args:
        :return:
        """
        return args
    
    
    e = func_paramTest02()  # ()
    print(type(e))  # <class 'tuple'>
    f = func_paramTest02(0.75, '哈哈', {'name': '张三'})  # (0.75, '哈哈', {'name': '张三'})
    print(f)
    
    def func_paramTest03(**kwargs):
        """
        4、可变参数(返回字典):kwargs是字典里类型
        :param kwargs:
        :return:
        """
        return kwargs
    
    
    g = func_paramTest03()  # ()
    print(type(g))  # <class 'dict'>
    h = func_paramTest03(name='python', age=20)  # {'name': 'python', 'age': 20}
    

    三、函数调用简化:lambda表达式

    如果⼀个函数有⼀个返回值,并且只有⼀句代码,可以使 lambda简化
    lambda(形参:表达式)(实参)

    3.1 lambda表达式基础

    # 无参
    print((lambda: 100)())  # 100
    # 一个参数
    print((lambda a: a)('hello world'))  # hello world
    # 两个参数
    print((lambda a, b: a+b)(1, 2))  # 3
    # 默认参数
    print((lambda a, b, c=100: a + b + c)(10, 20))  # 130
    # 可变参数(返回元组)
    print((lambda *args: args)(10, 20, 30))  # (10, 20, 30),返回值为元组形式
    # 可变参数(返回字典)
    print((lambda **kwargs: kwargs)(name='python', age=20))  # {'name': 'python', 'age': 20},返回值为元组形式
    

    3.2 lambda表达式应用场景

    3.2.1 带判断的lambda

    print((lambda a, b: a if a > b else b)(1000, 500))  # 1000
    

    3.2.2 列列表数据按字典key的值排序

    students = [
          {'name': 'TOM', 'age': 20},
          {'name': 'ROSE', 'age': 19},
          {'name': 'Jack', 'age': 22}
    ]
    # 按name值升序排列列
    students.sort(key=lambda x: x['name'])
    print(students)  # [{'name': 'Jack', 'age': 22}, {'name': 'ROSE', 'age': 19}, {'name': 'TOM', 'age': 20}]
    # 按name值降序排列列
    students.sort(key=lambda x: x['name'], reverse=True)
    print(students)
    # 按age值升序排列列
    students.sort(key=lambda x: x['age'])
    print(students)
    
    # 输出结果
    # [{'name': 'Jack', 'age': 22}, {'name': 'ROSE', 'age': 19}, {'name': 'TOM', 'age': 20}]
    # [{'name': 'TOM', 'age': 20}, {'name': 'ROSE', 'age': 19}, {'name': 'Jack', 'age': 22}]
    # [{'name': 'ROSE', 'age': 19}, {'name': 'TOM', 'age': 20}, {'name': 'Jack', 'age': 22}]
    
    展开全文
  • 对于一个功能,要根据输入条件的不同选择不同的调用函数,我们在C语言中可以使用switch语句,但是python没有SwitchCase的用法,因此需要使用其他方法来进行灵活的使用,以下代码就使用了字典的技巧来实现了函数的...

    我们会遇到这样的需求,对于一个功能,要根据输入条件的不同选择不同的调用函数,我们在C语言中可以使用switch语句,但是python没有SwitchCase的用法,因此需要使用其他方法来进行灵活的使用,以下代码就使用了字典的技巧来实现了函数的选择使用,我们理解以下代码的前提是理解python当中,函数是一个中要的对象,然后字典可以使用get方法来进行值的选取,函数的调用只需要在函数名字后面加上括号就可以了。

    def show_capital(name):
    	print(name.upper())
    
    def show_title(name):
    	print(name.title())
    
    def show_lower(name):
    	print(name.lower())
    
    
    functions = {
    	1:show_capital,
    	2:show_title,
    	3:show_lower,
    }
    
    choice = 1
    name = 'kobe bryant'
    functions.get(choice)(name)
    
    choice = 2
    name = 'kobe bryant'
    functions.get(choice)(name)
    
    choice = 3
    name = 'kobe bryant'
    functions.get(choice)(name)
    

    执行之后,我们看到根据choice的选择不同,三个function分别打印对应的名字显示格式如下:
    在这里插入图片描述

    展开全文
  • dict.clear():删除字典内的所有元素 dict.copy():返回一个字典的浅复制 dict.fromkeys(seq[,val]): 创建一个新...关键字参数也可以调用函数,且关键字参数不得早于非关键字参数 args: ptyhon支持定义这样的函数,...
  • 字典 字典的定义 ...定义与调用函数 函数的返回值 函数的参数传值 必选参数形参与实参的个数必须相同否则直接报错 默认参数在定义函数时给形参一个默认值 可变参数传入的参数个数是可变的可以是1-n个也可
  • python通过函数名调用函数原理示例代码输出 原理 eval函数用来执行一个字符串表达式,并返回表达式的值。 *args可以展开数组类型的参数。 **kwargs可以展开字典类型的参数。 示例代码 mapa={} mapa["add"]=[1,4] map...
  • python 函数名作为字典值进行调用

    千次阅读 2019-08-22 15:32:09
    python练习的一些小知识点python学习函数名作为字典value进行函数调用功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定...
  • ··如果调用函数传递的参数是可变类型,则在函数内部,使用方法修改了针对参数的内容,同样会改变外部的传递的参数 如: ··+=,在python中,列表使用+=相当于调用列表的extend()方法 如: ...
  • 定义与调用函数 函数的返回值 函数的参数传值 变量的作用域 字典 字典的定义 字典的特性 字典的增加 字典的删除 字典的修改 字典信息的查看 字典的复制 课后作业 test01 test02 usrbinenv python codingutf-8函数...
  • 字典可以存储任意类型的对象,字典中的数据存储形式是:每一个键key对应一个值value,键是唯一的,但是值可以相同。字典用{}来表示,如: d = {&amp;quot;name&amp;quot;:&amp;quot;Tom&amp;quot;,...
  • python函数字典

    2017-08-31 22:09:50
    调用函数 函数的返回值 函数的参数传值 变量的作用域 二字典 字典的定义 字典的特性 字典的增加 字典的删除 字典的修改 字典信息的查看 字典的复制 一、python 函数 函数是组织好的,可重复使用的,用来...
  • python3中可以采用如下方法: 函数(*(元组)) 函数(**{字典}) 如下例子: function(*("whither", "canada?")) 元组 function(*(1, 2 + 3))元组 fu...
  • python 调用函数时使用星号 *, ** 调用函数时使用星号 * 或 ** test(*args):* 的作用其实就是把序列 args 中的每个元素,当作位置参数传进去。如果 args 等于 (1,2,3) ,那么这个代码就等价于 test(1, 2, 3) ...
  • python字典

    2020-07-22 20:00:48
    python3.6之前的版本,字典是无序的,要使用有序字典则需要调用orderdict对象。3.6之后字典就默认为有序字典。原因如下: 1.python3.6之前的版本: ​ # 在python中新建一个字典 new_dict = {} 这里Cpython定义的是...
  • Python中的函数函数的作用就是将某一个功能进行打包,进行功能的调用。 正文: 一、进行字典的定义 字典 key - value 键值对进行对应 value可以是任何数据类型 格式: 变量名 = { 'key1值' : [value1,...
  • 在原来python2里有一个函数apply来做这种事情,如下:# File: builtin-apply-example-1.py def function(a, b): print a, b apply(function, ("whither", "canada?")) apply(function, (1, 2 + 3))# File: ...
  • 调用函数时使用:*、** &amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;test(*args)中 * 的作用:其实就是把序列 args 中的每个元素,当作位置参数传...
  • 如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值——相当于通过“传引用”来传递对象。 如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象...
  • Python中的元素有可变和不可变之分,如整数、浮点数、字符串、元组都属于不可变元素。列表和字典属于可变的。  对于整数、浮点数的不可变:  “=”的作用是将对象引用过与内存中的对象进行绑定,既然整数是不可...
  • Python_函数式编程_函数声明调用_函数的参数_函数的变量_函数的返回值_函数互相调用_递归函数_万能参数_元组参数_字典参数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,502
精华内容 600
关键字:

python字典调用函数

python 订阅