当你试图访问它时,是否有可能使一个装饰器使属性变得懒惰hasattr()?我弄清楚如何使它变得懒惰,但是hasattr()过早地评估它.例如,
class lazyattribute:
# Magic.
class A:
@lazyattribute
def bar(self):
print("Computing")
return 5
>>> a = A()
>>> print(a.bar)
'Computing'
5
>>> print(a.bar)
5
>>> b = A()
>>> hasattr(b, 'bar')
'Computing'
5
# Wanted output: 5
Run Code Online (Sandbox Code Playgroud) 当前是否可以TABLESAMPLE在SQLAlchemy中的ORM查询中的某些表上使用?
我能找到的最接近的是Query.suffix_with(*suffixes),但是将后缀放在查询的末尾,而不是表的末尾。
如果有帮助,这是我的用例:
我的查询当前是:
query = session.query(A).options(
subqueryload(A.rel1),
subqueryload(A.rel2)
).filter(A.id >= min_id, A.id < max_id, [...])
Run Code Online (Sandbox Code Playgroud)
并且我想TABLESAMPLE在桌子上,A这样我就可以A使用某些过滤器有效地仅加载的子集及其对应的关系。我正在使用PostgreSQL 9.5作为数据库。