我有一个查询,如下所示:
query = session.query(Item) \
.filter(Item.company_id == company_id) \
.order_by(Item.id)
Run Code Online (Sandbox Code Playgroud)
这是一个非常基本的查询.除了拉出Item的值之外,我想在混合中添加一个额外的值,并将它返回给我.在原始SQL中,我会这样做:
SELECT *, 0 as subscribed
FROM items
WHERE company_id = 34
ORDER BY id
Run Code Online (Sandbox Code Playgroud)
如何通过sqlalchemy手动添加该值?
我已经看到了一些"解决方案",但每次解决方案似乎都是"不要使用嵌套类,在外面定义类,然后正常使用它们".我不喜欢这个答案,因为它忽略了我选择嵌套类的主要原因,也就是说,要创建一个可以访问所有子类实例的常量池(与基类相关联).
这是示例代码:
class ParentClass:
constant_pool = []
children = []
def __init__(self, stream):
self.constant_pool = ConstantPool(stream)
child_count = stream.read_ui16()
for i in range(0, child_count):
children.append(ChildClass(stream))
class ChildClass:
name = None
def __init__(self, stream):
idx = stream.read_ui16()
self.name = constant_pool[idx]
Run Code Online (Sandbox Code Playgroud)
所有类都传递一个param,这是一个自定义比特流类.我的目的是找到一个解决方案,它不需要我在ChildClass中读取ChildClass的idx值.所有子类流读取都应该在子类中完成.
这个例子过于简化了.常量池不是我需要的所有子类的唯一变量.idx变量不是从流阅读器读取的唯一内容.
这在python中甚至可能吗?有没有办法访问父母的信息?
我正在尝试为某些单元测试生成唯一的ID 号,我看到一个建议在某处使用类似的东西:
def unique_id():
time.sleep(0.000001) # smallest precision for time.time()
return time.time()
Run Code Online (Sandbox Code Playgroud)
我想知道hash()调用是否总是至少0.000001,所以我可以使用:
def unique_id():
return hash(time.time())
Run Code Online (Sandbox Code Playgroud)
如果我在单线程应用程序中连续调用它,那么它是否会返回相同的值两次?
编辑:用'NUMBERS'这个词加粗,因为每个人都忽略了它.