Python 正在获取名为'foo'的属性`

Python 正在获取名为'foo'的属性`,python,properties,Python,Properties,我有 我想做这个程序: class A: foo = 'f' baa = 'b' @property def foo(self): return self.foo @property def baa(self): return self.baa 获取类的属性。 例如a=a()和get(a,'foo')给了我f。而a=2和gets(a,'imag')给我0这个内置名为getattr 您还需要以不同的方式调用属性

我有

我想做这个程序:

class A:

    foo = 'f'
    baa = 'b'

    @property
    def foo(self):
        return self.foo

    @property
    def baa(self):
        return self.baa
获取类的属性。
例如
a=a()
get(a,'foo')
给了我
f
。而
a=2
gets(a,'imag')
给我
0
这个内置名为
getattr

您还需要以不同的方式调用属性和变量:

无法使用
getattr

get(myclass, prop):

正如@MaxNoe所述,您需要的方法是
getattr()
。但是,如果只想使用
get()
,您可以为它创建一个别名。显然,它也适用于类实例

class A:
    def __init__(self):
        self._foo = 'f'
        self._bar = 'b'

    @property
    def foo(self):
        return self._foo

    @property
    def bar(self):
        return self._bar

a = A()
print(a.foo)
print(getattr(a, '_foo'))
烧瓶使用(强制性?)
我投票结束这个问题,因为不清楚您是否需要阅读一本关于python oop的介绍性书籍,您正在尝试做一些您没有告诉我们的详细说明,或者这是否是一个严重的XY问题。如何在flask中使用它?
get=getattr
将创建一个别名,而无需定义新函数。我得到
jinja2.exceptions.UndefinedError:'getattr'在我的模板中未定义
{getattr(r,f)}
。(f为str,r为class)
#accepts class name (c) and attribute (attr)
def get(c,attr):
    #returns the attribute
    return getattr(c,attr)
from flask import Flask
app=Flask(__name__)

@app.route("/")
def get(c,attr):
    return getattr(c,attr)