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)