我有
class A:
foo = 'f'
baa = 'b'
@property
def foo(self):
return self.foo
@property
def baa(self):
return self.baa
我想制作这个程序:
get(myclass, prop):
获取该类的属性。
例如a = A()
和get(a, 'foo')
给了我f
。 a = 2
和gets(a, 'imag')
给了我0
。
答案 0 :(得分:3)
内置版本称为getattr
。
您还需要以不同方式调用属性和变量:
您无法使用getattr
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'))
答案 1 :(得分:0)
如@MaxNoe所述,您想要的方法是getattr()
。但是,如果您只想使用get()
,则可以为其创建别名。显然也适用于类实例。
#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)