当前位置:首页 > 编程教程 > Python技术文章 > Python中如何使用字符串调用函数与方法的示例分享

Python中根据字符串调用函数的实现方法

  • 发布时间:
  • 作者:码农之家
  • 点击:102

这篇文章主要知识点是关于Python、字符串、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Python极客项目编程
  • 类型:Python编程大小:6.5 MB格式:PDF作者:Mahesh Venkitachalam
立即下载

Python中如何使用字符串调用函数与方法的示例分享

字符串作为python中常用的数据类型,掌握字符串的常用方法十分必要。下面这篇文章主要给大家介绍了关于Python中通过字符串调用函数或方法的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。

 

前言

本文主要给大家介绍了关于Python用字符串调用函数或方法的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:

先看一个例子:

 

>>> def foo():
    print "foo"

>>> def bar():
    print "bar"

>>> func_list = ["foo","bar"]
>>> for func in func_list:
    func()
TypeError: 'str' object is not callable

我们希望遍历执行列表中的函数,但是从列表中获得的函数名是字符串,所以会提示类型错误,字符串对象是不可以调用的。如果我们想要字符串变成可调用的对象呢?或是想通过变量调用模块的属性和类的属性呢?

以下有三种方法可以实现。

eval()

 

>>> for func in func_list:
    eval(func)()
foo
bar

eval() 通常用来执行一个字符串表达式,并返回表达式的值。在这里它将字符串转换成对应的函数。eval() 功能强大但是比较危险(eval is evil),不建议使用。

locals()和globals()

 

>>> for func in func_list:
    locals()[func]()
foo
bar
>>> for func in func_list:
    globals()[func]()
foo
bar

locals() 和 globals() 是python的两个内置函数,通过它们可以一字典的方式访问局部和全局变量。

getattr()

getattr() 是 python 的内建函数,getattr(object,name) 就相当于 object.name,但是这里 name 可以为变量。

返回 foo 模块的 bar 方法

 

>>> import foo
>>> getattr(foo, 'bar')()

返回 Foo 类的属性

 

>>> class Foo:
  def do_foo(self):
    ...
  def do_bar(self):
    ...
>>> f = getattr(foo_instance, 'do_' + opname)
>>> f()

总结

以上就是Python中如何使用字符串调用函数与方法的示例分享的详细内容,更多请关注码农之家其它相关文章!

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

Python 相关电子书
学习笔记
网友NO.179976

Python字符串、整数、和浮点型数相互转换实例

前言序锦 在编程中,经常要用到字符串的相互转换,现在在这里记录一下Python里面的字符串和整数以及浮点型数之间是如何进行相互转换的。 int(str)函数将符合整数的规定的字符串转换成int型的 float(str)函数将符合浮点型的规定的字符串转换成float型的 str(num)将整数、浮点型转换成字符串型的 int(str)函数将符合整数的规定的字符串转换成int型的 num2 = "123"; num2 = int(num1); print("num2: %d" % num2); ''' 输出 num2: 123 ''' float(str)函数将符合浮点型的规定的字符串转换成float型的 num1 = "123.12"; num2 = float(num1); print("num2:%f " %num2); ''' num2:123.120000 ''' str(num)将整数、浮点型转换成字符串型的 num = 123; mystr = str(num); print ("%s" % mystr); ''' 输出 123 ''' 以上这篇Python字符串、整数、和浮点型数相互转换实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支……

网友NO.948514

python用reduce和map把字符串转为数字的方法

python中reduce和map简介 map(func,seq1[,seq2...]) :将函数func作用于给定序列的每个元素,并用一个列表来提供返回值;如果func为None,func表现为身份函数,返回一个含有每个序列中元素集合的n个元组的列表。 reduce(func,seq[,init]) :func为二元函数,将func作用于seq序列的元素,每次携带一对(先前的结果以及下一个序列的元素),连续的将现有的结果和下一个值作用在获得的随后的结果上,最后减少我们的序列为一个单一的返回值:如果初始值init给定,第一个比较会是init和第一个序列元素而不是序列的头两个元素。 这篇文章主要介绍的是python利用reduce和map把字符串转为数字,下面话不多说,来看看详细的实现方法。 习题: 利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456 解法及思路说明: from functools import reduce def str2float(s): s = s.split……

网友NO.721737

python如何通过函数名的字符串来调用这个函数

遍历执行列表中的函数,但是从列表中获得的函数名是字符串,所以会提示类型错误,字符串对象是不可以调用的。如果我们想要字符串变成可调用的对象呢?或是想通过变量调用模块的属性和类的属性呢?以下有三种方法可以实现 1、eval() eval() 通常用来执行一个字符串表达式,并返回表达式的值。在这里它将字符串转换成对应的函数。eval() 功能强大但是比较危险(eval is evil),不建议使用。 2、locals()和globals() locals() 和 globals() 是python的两个内置函数,通过它们可以以字典的方式访问局部和全局变量。 3、getattr() getattr() 是 python 的内建函数,getattr(object,name) 就相当于 object.name,但是这里 name 可以为变量。 返回 foo 模块的 bar 方法 返回 Foo 类的属性 标准库operator下的methodcaller函数 以上就是python如何通过函数名的字符串来调用这个函数的详细内容,更……

网友NO.200737

Python如何将整数转化为字符串

在编程当中,经常要用到字符串的互相转换。下面说一说python里面的字符串和整数是怎么转换的。 1、int(str)函数 将符合整数的规范的字符串转换成int型。 2、float(str)函数 将符合浮点型的规范的字符串转换成float型 3、str(num)函数 将整数,浮点型转换成 字符串 以上就是Python如何将整数转化为字符串的详细内容,更多请关注码农之家其它相关文章! ……

网友NO.522466

python解决字符串倒序输出的问题

如下所示: #python解决字符串倒序输出def string_reverse(m): num=len(m) a=[] for i in range(num): a.append(m[num-1-i])#从最后一位的元素开始往新list内添加元素 return a 以上这篇python解决字符串倒序输出的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

<
1
>

Copyright 2018-2020 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com