精华内容
下载资源
问答
  • getattr

    2017-10-25 17:06:59
    class A(): a = 1 求值 1 A . a ( 类.类属性 ) -> 1 求值2 getattr( A,’a’ ) getattr( 类 ,’类属性’ ) -> 1

    属性

    class A():
          a = 1

    求值 1

    A . a      ( 类.类属性
    ->    1

    求值2

    getattr( A,’a’ )       getattr( 类 ,’类属性’ )
    ->    1

    方法

    class B():
          def func( self ):       ( 实例方法 )
                return ‘getattr_getattr_getattr’
          @classmethod
          def func( cls ):         ( 类方法 )
                return ‘getattr_getattr_getattr’

    求值

    b_obj = B()      ( #因为上述是实例方法(self),如果是定义了类方法,则不需要实例化。
    getattr( b_obj,’func’ )      ( #获取方法,存在则打印内存地址。
    ->     ‘bound method classobj.ee of class main.test at 0x7fef7b338ef0>’

    getattr( b_obj,’func’ )( )      ( #运行方法
    ->     ‘getattr_getattr_getattr’

    展开全文
  • Support getattr

    2020-12-25 21:30:16
    <div><p>In a Parser, given a function with multiple rules, where a statement is present in one rule but not the other, it would be useful to be able to use <code>getattr</code> on the <code>p</code> ...
  • 看了下函数本身的doc复制代码 代码如下:getattr(object, name[, default]) -> value Get a named attribute from an object; getattr(x, ‘y’) is equivalent to x.y. When a default argument is given, it is ...
  • Python getattr

    2019-11-24 12:00:06
    getattr(object, name[, default]) 获得对象的属性值 class A(object): foo = 1 a = A() getattr(a, 'foo') --out:1 getattr(a, 'bar') --out:报错

    getattr(object, name[, default])
    获得对象的属性值

    class A(object):
        foo = 1
    a = A()
    getattr(a, 'foo')
    --out:1
    
    getattr(a, 'bar')
    --out:报错
    

    参考:
    https://www.runoob.com/python/python-func-getattr.html

    展开全文
  • getattr 基本概念getattr提供了一种通过方法名来获取方法的一种途径,python官方的解释如下:getattr(object,name[,default])Return the value of the namedattribute of object.namemust be a string. If the ...

    getattr 基本概念

    getattr提供了一种通过方法名来获取方法的一种途径,python官方的解释如下:

    getattr

    (

    object

    ,

    name

    [,

    default

    ]

    )

    Return the value of the namedattribute of object.namemust be a string. If the string is the name of one of the object’sattributes, the result is the value of that attribute. For example,getattr(x,'foobar') isequivalent to x.foobar.If the named attribute does not exist, defaultis returned if provided, otherwise AttributeErroris raised.

    其中需要注意的一点是,

    name必须是字符串。

    通过下面的例子来说明

    getattr的使用。

    class GetattrTest(object):

    def __init__(self,nm):

    self.name = nm

    def display(self):

    return self.name

    gat = GetattrTest('john')

    print getattr(gat, 'name','default')

    print getattr(gat, 'age','default')

    print getattr(gat,'display','default')

    print getattr(gat,'display','default')()

    输出:

    john

    default

    >

    john

    如果有name属性则打印出name的值。类中没有age属性,所以打印出default。

    getattr 在包装里面的使用

    在Python2.2以前,是不允许从标准类型进行派生的。因此可以用包装的方法实现类似的效果。如下:

    class WrapMe(object):

    def __init__(self, obj):

    self.__data = obj

    def get(self):

    return self.__data

    def __repr__(self):

    return 'self.__data'

    def __str__(self):

    return str(self.__data)

    def __getattr__(self, attr):

    return getattr(self.__data, attr)

    wrappedComplex = WrapMe(3.5+4.2j)

    print wrappedComplex

    print(wrappedComplex.real)

    print(wrappedComplex.imag)

    print(wrappedComplex.conjugate())

    print(wrappedComplex.get())

    输出:

    (3.5+4.2j)

    3.5

    4.2

    (3.5-4.2j)

    (3.5+4.2j)

    print(wrappedComplex):调用__repr__()方法。

    wrappedComplex.real:当前类中没有real概述性。这块实现的核心方法是,在实例或在字典中搜寻real改属性,如果找不到,就调用__getattr__方法,方法中调用getattr方法,获取实例的real方法,即(3.5+4.2j).real=3.5。

    其他的属性和方法调用也类似。

    展开全文
  • import statsoutdef output(data, format="text"):output_function = getattr(statsout, "output_%s" %format)return output_function(data)[code]这个例子中可以根据传入output函数的format参数的不同 去调用...

    import statsout

    def output(data, format="text"):

    output_function = getattr(statsout, "output_%s" %format)

    return output_function(data)

    [code]

    这个例子中可以根据传入output函数的format参数的不同 去调用statsout模块不同的方法(用格式化字符串实现output_%s)

    返回的是这个方法的对象 就可以直接使用了 如果要添加新的格式 只需要在模块中写入新的方法函数 在调用output函数时使用新的参数就可以使用不同的格式输出

    确实很方便

    为了加深对getattr函数的理解 转载一篇英文的说明

    Python's getattr function is used to fetch an attribute from an object, using a string object instead of an identifier to identify the attribute. In other words, the following two statements are equivalent:

    [code]

    value = obj.attribute

    value = getattr(obj, "attribute")

    If the attribute exists, the corresponding value is returned. If the attribute does not exist, you get an AttributeError exception instead.

    The getattr function can be used on any object that supports dotted notation (by implementing the __getattr__ method). This includes class objects, modules, and even function objects.

    path = getattr(sys, "path")

    doc = getattr(len, "__doc__")

    The getattr function uses the same lookup rules as ordinary attribute access, and you can use it both with ordinary attributes and methods:

    result = obj.method(args)

    func = getattr(obj, "method")

    result = func(args)

    or, in one line:

    result = getattr(obj, "method")(args)

    Calling both getattr and the method on the same line can make it hard to handle exceptions properly. To avoid confusing AttributeError exceptions raised by getattr with similar exceptions raised inside the method, you can use the following pattern:

    try:

    func = getattr(obj, "method")

    except AttributeError:

    ... deal with missing method ...

    else:

    result = func(args)

    The function takes an optional default value, which is used if the attribute doesn't exist. The following example only calls the method if it exists:

    func = getattr(obj, "method", None)

    if func:

    func(args)

    Here's a variation, which checks that the attribute is indeed a callable object before calling it.

    func = getattr(obj, "method", None)

    if callable(func):

    func(args)

    展开全文
  • 一、简介1、getattr是Python的内置函数2、用法getattr(object,“attribution”,None)object: 对象attribution:实例方法、或者类方法(object是一个类对象的时候)必须是strNone:默认值,如果没有attribution,或者...
  • getattr()函数是Python自省的核心函数,具体使用大体如下:10.1.5 获取对象引用getattrGetattr用于返回一个对象属性,或者方法class A:def __init__(self):self.a = 'a'def method(self):print "method print"a = A...
  • getattr()

    2020-11-25 22:20:15
    print(getattr(apa, 'hej', 9)) </code></pre> <p>Vulture 0.29: <pre><code> getattr.py:6: unused attribute 'hej' (60% confidence) </code></pre> <p>The <code>hej</code> value is used ...
  • 1.getattr() 是python 中的一个内置函数,用来获取对象中的属性值2.getattr(obj,name[,default]) 其中obj为对象名,name是对象中的属性,必须为字符串。3.两种表达式的区别第一种,getattr(obj,"_attr")第二种,...
  • 摘要Python 对应属性和方法的判断 hasattr/getattr/setattrhasattr判断一个对象里面是否有name属性或者方法,返回值为Boolean值, 有name 返回true,反之false其等同于getattr(object, name)hasattr(object, name)...
  • getattr(object,name,default):作用:返回object的名称为name的属性的属性值,如果属性name存在,则直接返回其属性值;如果属性name不存在,则触发AttribetError异常或当可选参数default定义时返回default值。如:...
  • In [1]: models import CompanyTenant # 导入模型表In [2]: tenant = getattr(CompanyTenant,'tenant_id','') # 获取模型表有的属性 如果没有则设置默认值为空“”In [3]: print(tenant) # 得到这个模型表有的属性的...
  • 9p getattr hack

    2020-12-08 23:02:26
    s getattr hack to make fstat after unlink work. <p>The 9p hack can be found at https://github.com/hyperhq/linux/commit/084b4a5aa4b90975f7ac6b4714a6b449430ef4c4</p><p>该提问来源于开源项目:...
  • getattr是python里的一个内建函数getattr()这个方法最主要的作用是实现反射机制。也就是说可以通过字符串获取方法实例。这样,你就可以把一个类可能要调用的方法放在配置文件里,在需要的时候动态加载。python里面跟...
  • hasattr(object, name)作用:判断对象object是否包含名为name的特性(hasattr是通过调用getattr(ojbect, name)是否抛出异常来实现的)。示例:>>> hasattr(list, 'append')True>>> hasattr(list, '...
  • python内置的两个看起来很简单,一般也不怎么用得上的函数,getattr函数和setattr函数。getattr函数用于获取对象的某个属性的值,setattr函数用于设置对象的某个属性值。getattr函数获取对象的某个属性值,如果属性...
  • 在之前的文章有提到__getattr__函数的作用: 如果属性查找(attribute lookup)在实例以及对应的类中(通过__dict__)失败, 那么会调用到类的__getattr__函数, 如果没有定义这个函数,那么抛出AttributeError异常。...
  • 让我们看看__getattr__和__getattribute__魔术方法的一些简单示例。__getattr__每当您请求尚未定义的属性时,Python将调用__getattr__方法。在下面的示例中,我的类Count没有__getattr__方法。现在在main中,当我...
  • I'm using getattr to call different functions depending on a variable.Im doing something like that:getattr(foo, bar) ()That works, calling functions like foo.bar()My problem is that I have 'bar' funct...
  • 标签:Python中的getattr()函数详解:getattr(object, name[, default]) -> valueGet a named attribute from an object; getattr(x, ‘y‘) is equivalent to x.y.When a default argument is given, it is ...
  • getattr用法

    2014-08-18 15:30:39
    class result(): a=100 def text(self): b=20 return b if __name__=='__main__': ...result1=getattr(t,'text')() ...result2=getattr(t,'a','default') result3=getattr(t,'b','default') pr
  • 这是python里的一个内建函数,当调用的属性或者方法不存在时,该方法会被调用调用不存在的属性class Student(object):def __getattr__(self, attr):if attr in ('name', 'age', 'score'):print attrelse:raise ...
  • About getattrPython’s getattr function is used to fetch an attribute from an object, using a string object instead of an identifier to identify the attribute. In other words, the following two ...
  • getattr()函数是Python自省的核心函数,具体使用大体如下:10.1.5 获取对象引用getattrGetattr用于返回一个对象属性,或者方法class A:def __init__(self):self.a = 'a'def method(self):print "method print"a = A...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,356
精华内容 5,342
热门标签
关键字:

getattr