小编Ger*_*ult的帖子

如何在sqlalchemy查询中选择文字值?

我有一个查询,如下所示:

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手动添加该值?

python sqlalchemy

31
推荐指数
2
解决办法
2万
查看次数

嵌套的Python类需要访问封闭类中的变量

我已经看到了一些"解决方案",但每次解决方案似乎都是"不要使用嵌套类,在外面定义类,然后正常使用它们".我不喜欢这个答案,因为它忽略了我选择嵌套类的主要原因,也就是说,要创建一个可以访问所有子类实例的常量池(与基类相关联).

这是示例代码:

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中甚至可能吗?有没有办法访问父母的信息?

python scope nested-class

11
推荐指数
2
解决办法
1万
查看次数

hash(time.time())总是唯一的

我正在尝试为某些单元测试生成唯一的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'这个词加粗,因为每个人都忽略了它.

python hash time

2
推荐指数
1
解决办法
2270
查看次数

标签 统计

python ×3

hash ×1

nested-class ×1

scope ×1

sqlalchemy ×1

time ×1