精华内容
下载资源
问答
  • Python字符串调用方法解释(部分),因为本人使用的是3.1版,很多旧版的调用方法新版不支持,所以只有些基础的调用和代码运行的截图,比较适合和我一样的菜鸟级的童鞋观摩。
  • 前言本文主要给大家介绍了关于Python字符串调用函数或方法的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:先看一个例子:>>> def foo():print "foo">>> def bar():print "bar...

    前言

    本文主要给大家介绍了关于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()

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

    参考

    时间: 2017-08-03

    展开全文
  • python中,有时调用者仅知道类名和类方法,不负责实际的函数调用,而是将要调用的类名和类方法告诉一...中间函数需以被告知的字符串调用类和类方法。 在万物皆对象,我们需要将传进来的字符串转化为类对象,这里我...

    在python中,有时调用者仅知道类名和类方法,不负责实际的函数调用,而是将要调用的类名和类方法告诉一个中间函数,由中间函数负责实际调用函数。中间函数需以被告知的字符串调用类和类方法。                                                                               在万物皆对象,我们需要将传进来的字符串转化为类对象,这里我们可以使用eval实现。而以字符串形式调用类方法,可以使用内置方法getattr实现,以下是详细例子。

    class SayHello():

    def say(self):

    print 'hello'

    if __name__ == '__main__':

    # normal call class method

    i_s_h = SayHello()

    i_s_h.say()

    # use string call class method

    c_str = eval('SayHello')()

    print c_str

    c_str.say()

    # direct use class method

    getattr(c_str,'say')()

    以上输出:

    hello

    hello

    hello

    [Finished in 0.3s]

    展开全文
  • 很多地方都讲到这个方法论,我着重强调一点:返回类的方法后,不可以再实例化,然后调用方法getattr函数输入一个类对象和一个字符串,返回与字符串同名的类对象的属性。该函数原型为: getattr(object, name[, ...

    使用python内置函数getattr可实现。

    很多地方都讲到这个方法论, 我着重强调一点:

    返回类的方法后,不可以再实例化,然后调用该方法

    getattr函数输入一个类对象和一个字符串,返回与字符串同名的类对象的属性。

    该函数原型为: getattr(object, name[, default])

    object :类的对象

    name : 类属性名对应的字符串

    default :可选项,当name对应的属性不存在时:如果输入了default参数,返回default;否则产生AttributeError异常。

    若name对应的属性存在,该函数返回该属性。

    示例:

    class example:

    def __init__(self):

    self.member = 0

    def func(self):

    pass

    对于该类执行如下语句:

    e = example()

    member = getattr(e, 'member', None)

    func = getattr(e, 'func', None)

    # 不可以 e.func()

    print('member is :' + str(member))

    func()

    通过调用getattr函数,使得:member = e.member,func  = e.func

    运行出的结果为:

    member is :0

    this is a func

    展开全文
  • 一、基础知识str.format()的使用语法在主体字符串...该方法创建并返回一个新的字符串对象,可以被立即打印或保存起来。例如:template = '{0}, {1} and {2}'template.format('spam', 'ham', 'eggs')# spam, ham and...

    一、基础知识

    str.format()的使用语法

    在主体字符串(string)中,花括号通过位置(例如,{1})或关键字(例如,{food})指出替换目标及将要插入的参数。

    该方法创建并返回一个新的字符串对象,可以被立即打印或保存起来。

    例如:

    template = '{0}, {1} and {2}'

    template.format('spam', 'ham', 'eggs')

    # spam, ham and eggs

    template = '{motto}, {pork} and {food}'

    template.format(motto = 'spam', pork = 'ham', food = 'eggs')

    # spam, ham and eggs

    template = '{motto}, {0} and {food}'

    template.format('ham', motto = 'ham', food = 'eggs')

    主体字符串也可以是一个临时字符串常量,并且任意的对象类型都可以替换。

    '{motto}, {0} and {food}'.format(42, motto=3.14, food = [1,2])

    # '3.14, 42 and [1,2]'

    二、添加键,属性和偏移量

    格式化字符串可以指定对象属性和字典键:方括号指定字典键,点表示位置或关键字所引用的一项的对象属性

    >>> import sys

    >>> '{1[spam]} and {0.platform}'.format(sys, {'spam':'laptop'})

    out: laptop and win32

    >>> '{config[spam]} and {sys.platform}'.format(sys = sys, config = {'spam':'laptop'})

    out: laptop and win32

    格式化字符串中的方括号可以指定列表(及其他序列)的(正)偏移量以执行索引

    >>> somelist = list('SPAM') # ['S', 'P', 'A', 'M']

    >>> 'first = {0[0]} and second = {0[1]}'.format(somelist)

    out: first = S and second = P

    三、添加具体格式化

    str.format()的替代目标语法

    形式化结构:{fieldname!conversionflag:formatspec}

    fielname 是指定参数的一个数字或关键字,后面跟着可选的“.name”或“[index]”成分引用

    conversionflag 可以是r, s, 或者a分别是在该值上对rper, str 或ascii内置函数的一次调用

    formatspec 指定了如何表示该值,包括字段宽度,对齐方式,补零,小数点精度等细节,并且以一个可选的数据类型编码结束。

    formatspec 组成形式如下:

    [[fill]align][sign][#][0][width][.precision][typecode]

    align 可能是>,

    formatspec 也包含嵌套的,只带有{}的格式化字符串,它从参数列表动态地获取值

    一些常见示例如下:

    >>> '{0:10} = {1:10}'.format('spam', 123.456) # 第一个位置参数,10个字符宽

    out: 'spam = 123.456'

    >>> '{0:>10} = {1:<10}'.format('spam', 123.456) # 第一个位置参数右对齐,10个字符宽;第二个位置参数左对齐,10个字符宽

    out:' spam = 123.456 '

    >>> '{0.platform:>10} = {1[item]:<10}'.format(sys, dict(item='laptop'))

    out:' win32 = laptop '

    浮点数代码示例如下:

    >>> '{0:e}, {1:.3e}, {2:g}'.format(3.14159, 3.14159, 3.14159)

    out: 3.141590e+00, 3.142e+00, 3.14159

    >>> '{0:f}, {1:.2f}, {2:06.2f}'.format(3.14159, 3.14159, 3.14159)

    out: 3.141590, 3.14, 003.14

    # {2:g} 表示第三个参数默认根据“g”浮点数表示格式化

    # {1:.2f}指定了带有2个小数位的“f”浮点数格式

    # {2:06.2f}添加一个6字符宽的字段并且在左边补充0

    嵌套式格式化语法,从参数列表动态地获取

    >>> '{0:.{1}f}'.format(1/3.0, 4)

    out: 0.3333

    展开全文
  • 问题描述今天遇到个问题,在一个类里面,想要通过字符串调用类里面的方法,即(注意,以下为错误代码演示,只是为了表述问题):class A(object):def a(self):print('xxxxx')def b(self):c= 'a'self.c()test = A()test...
  • 下面为大家分享一篇python 通过字符串调用对象属性或方法的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起过来看看吧有时候需要将属性或方法作为参数传入,这个时候可以通过以下几种方式用字符串调用对象...
  • ,例如: import operator operator.methodcaller('distance', 0, 0)(p) 当你需要通过相同的参数多次调用某个方法时,使用 operator.methodcaller 就很方便了。 比如你需要排序一系列的点,就可以这样做: points = ...
  • 下面为大家分享一篇python 通过字符串调用对象属性或方法的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起过来看看吧有时候需要将属性或方法作为参数传入,这个时候可以通过以下几种方式用字符串调用对象...
  • Python字符串分割的常用方法是直接调用字符串的str.split方法,但是其只能指定一种分隔符,如果想指定多个分隔符拆分字符串需要用到re.split方法(正则表达式的split方法)。str.split字符串的split方法函数原型如下...
  • 最近在使用python开发的过程中,想要实现通过字符串实现对函数的访问。在网上搜了一些方法,发现都不够简洁。最终笔者通过python内置的getattr方法,实现了这个功能,方法非常简单,在这里分享一下。首先是对getattr...
  • countcount方法返回字符串包含多少个参数指定的字符创strr = '我们今天不去上学,我们去踢足球'print(strr.count('我们'))// 2#调用字符串的count 方法,这里返回2,#表示该字符串包含了两个 '我们'findfind 方法 会...
  • 前言本文主要给大家介绍了关于Python字符串调用函数或方法的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:先看一个例子:>>> def foo():print "foo">>> def bar():print "bar">>> func_list = [...
  • 以下有三种方法可以实现1、eval()eval() 通常用来执行一个字符串表达式,并返回表达式的值。在这里它将字符串转换成对应的函数。eval() 功能强大但是比较危险(eval is evil),不建议使用。2、lo...
  • 有时候需要将属性或方法作为参数传入,这个时候可以通过以下几种方式用字符串调用对象属性或方法1、evalIn [634]: def getmethod(x,char='just for test'):...: return eval('str.%s' % x)(char)...:In [635]: ...
  • 下面为大家分享一篇python 通过字符串调用对象属性或方法的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起过来看看吧有时候需要将属性或方法作为参数传入,这个时候可以通过以下几种方式用字符串调用对象...
  • 对应的还有一个标准库“string”,它提供的是对字符串进行的一系列操作的函数,其中很多功能和字符串的内建函数几乎一样,只是调用方法不同而已。下面来看看字符串常用的内建函数,也就是字符串这个类的方法:1.str....
  • 文章首发公众号:CoderMrWu ,每周分享优质技术文章和经验,欢迎大家关注,共同交流。今天看了篇文章总结了 40 种...1/ 创建字符串s1 = 'This is a test.'2/ 使用 print 语句查看输出# python3/python2>>&...
  • Python字符串常用方法详解 在了解字符串的基本使用之后,本章将介绍 Python 字符串类型常用的几个方法。 在 Python 开发过程中,经常需要对字符串进行一些特殊处理,比如拼接字符串、截取字符串、格式化字符串等,...
  • 字符串作为python中常用的数据类型,掌握字符串的常用方法十分必要。下面这篇文章主要给大家介绍了关于Python中通过字符串调用函数或方法的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
  • 问题描述今天遇到个问题,在一个类里面,想要通过字符串调用类里面的方法,即(注意,以下为错误代码演示,只是为了表述问题):class A(object):def a(self):print('xxxxx')def b(self):c= 'a'self.c()test = A()test...
  • 下面利用几个实例说明字符串中的方法的用法,操作如下:工具/原料python截图工具方法/步骤1第一步,打开python语言命令窗口,声明一个字符串变量a1并进行赋值,然后调用startswith判断该变量是否以字符w开头,如下图...
  • 判断是否全是字母"python".isalpha() # 返回True"2python".isalpha() # 返回False根据分隔符分割字符串a = "I,LOVE,PYTHON"a.split(",")# 结果:['I','LOVE','PYTHON']去掉字符串两头的空格及回车符str.strip() # ...
  • python 字符串常用方法

    2019-10-03 10:21:54
    Python 开发过程中,经常需要对字符串进行一些特殊处理,比如拼接字符串、截取字符串、格式化字符串等,这些操作无需开发者自己设计实现,只需调用相应的字符串方法即可。 python 字符串分割 [root@kube str_...
  • Python 通过字符串调用方法方法

    千次阅读 2019-04-08 14:22:42
    今天遇到个问题,在一个类里面,想要通过字符串调用类里面的方法,即(注意,以下为错误代码演示,只是为了表述问题): class A(object): def a(self): print('xxxxx') def b(self): c= 'a' self.c() ...
  • 在以下代码中,通过调用aaa.bbb() 可以输出 bbb ,通过调用 ccc() 可以输出 ccc class aaa: def bbb(): print('bbb') def ccc(): print('ccc') str1 = 'aaa' str2 = 'bbb' str3 = 'ccc' aaa.bbb() # bbb ccc...
  • 下面小编就为大家分享一篇python 通过字符串调用对象属性或方法的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • python 字符串处理 替换字符串中的子字符串 替换字符串中的子字符串这个问题多用函数replace解决,并且其实还可以作为删除字符串中的子字符串 调用方法 string="fafafgfsousfsfrgasgas" print(string.replace("fa...

空空如也

空空如也

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

python字符串调用方法

python 订阅