小编Xua*_* Hu的帖子

sqlalchemy - 处理几个可选过滤器的优雅方式?

假设我有一个带有多个可选过滤器的查询方法.我想要实现的是,如果我传递一些非None值来过滤参数然后做一个过滤器,如果过滤值是None,那么就忽略它.

def get_query_results(filter1=None, filter2=None, ...):
    res = models.Item.query
    if filter1 is not None:
        res = res.filter(filter1=filter1)
    if filter2 is not None:
        res = res.filter(filter2=filter2)
    ....
    return res.all()
Run Code Online (Sandbox Code Playgroud)

我想避免的是模式

if XXX:
    res.filter(XXX=XXX)
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更优雅的方式来实现这一目标?

例如,将各种过滤器作为参数传递?

或者,当过滤器值为None时,我们可以做一些魔术来省略过滤器?

python mysql coding-style sqlalchemy

7
推荐指数
1
解决办法
1717
查看次数

面板中的填充和 wxpython 中的静态文本换行

我想要一个像这样的布局

在此输入图像描述

框架内部有一个主面板,左侧和右侧有空白填充,另一个子面板位于中间。位于子面板顶部的静态文本元素,更改窗口大小时应正确换行。

我的代码片段如下所示

import wx

class MyPanel(wx.Panel):
    def __init__(self, parent):
        super(MyPanel, self).__init__(parent)

        self.hsizer = wx.BoxSizer()
        self.hsizer.AddStretchSpacer()

        self.panel = wx.Panel(self)
        self.panel.SetSize((350, -1))

        self.vsizer = wx.BoxSizer(wx.VERTICAL)

        label = (
            "This is a long scentence that I want it wrapped properly, "
            "but it doesn't seem to work at work. "
            "I prefer if you guys can give any sugeestions or help. "
            "For Long Long Long Long Long scentence."
        )
        style = wx.ALIGN_LEFT
        self.static_text = wx.StaticText(self, label=label, style=style)
        self.vsizer.Add(self.static_text, flag=wx.EXPAND | wx.ALL …
Run Code Online (Sandbox Code Playgroud)

python layout user-interface wxwidgets wxpython

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