小编ack*_*ien的帖子

在SQLAlchemy中用什么类型存储字节字符串?

我正在尝试使用SQLAlchemy将字节字符串存储在PostgreSQL数据库中.

我的模型看起来像这样:

class UserAccount(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String)
    password_hash = db.Column(db.String)
    password_salt = db.Column(db.String)
Run Code Online (Sandbox Code Playgroud)

我希望password_hash并且password_salt都是字节字符串(即str,因为我使用的是Python 2.7),但即使我将字节传递给它,SQLAlchemy似乎也将它们转换为unicode.我也试过convert_unicode=False在模型中使用,但我得到了相同的结果.

我在SQLAlchemy模型中用什么来存储字节?

python postgresql sqlalchemy

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

如何使用用户定义的函数在APL中进行缩减/扫描?

我试图在APL的布尔向量中找到最长的1个连续链的长度.在Haskell中,如果我有一个由1和0表示的布尔列表,我可以这样做:

Prelude> scanl (\acc x -> x*(acc+1)) 0 [0,0,1,1,0,1,1,1,1,0,1]
[0,0,0,1,2,0,1,2,3,4,0,1]
Run Code Online (Sandbox Code Playgroud)

然后取一个最大值.

我试图在APL做类似的事情:

{?×?+1}\0 0 1 1 0 1 1 1 1 0 1
0 0 1 2 0 4 8 16 32 0 64
Run Code Online (Sandbox Code Playgroud)

这根本不是我期望的向量.我曾假设⍺会在扫描/缩小的上下文中引用累加器,而⍵会引用向量的下一个元素,但我的理解似乎有点过时了.这些简单的例子让我感到困惑:

{?}\1 1 1 1 1
1 1 1 1 1
{?+?}\1 1 1 1 1
1 2 4 8 16
{?×?}\1 1 1 1 1
1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)

是否有可能(在实践中)在APL中使用用户定义的函数和扫描/缩小?如果是这样,它是如何工作的,⍺和what指的是什么?

haskell functional-programming apl

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

酸洗set的子类时未调用__getstate__方法

据我了解,在对某个对象调用pickle.dumps时,它将调用该对象的__getstate__方法(如果有的话)以确定要腌制什么。

如果我创建一个类,例如:

class DictClass(dict):
    def __getstate__(self):
        print "pickling"
        return self
Run Code Online (Sandbox Code Playgroud)

我得到这个结果:

>>> pickle.dumps(DictClass())
pickling
'ccopy_reg\n_reconstructor\np0...'
Run Code Online (Sandbox Code Playgroud)

我可以做同样的事情,将“ dict”替换为“ list”:

class ListClass(list):
    def __getstate__(self):
        print "pickling"
        return self

>>> pickle.dumps(ListClass())
pickling
'ccopy_reg\n_reconstructor\np0...'
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用“设置”,则会发生一些不同的事情:

class SetClass(set):
    def __getstate__(self):
        print "pickling"
        return self

>>> pickle.dumps(SetClass())
'c__main__\nSetClass...'
Run Code Online (Sandbox Code Playgroud)

__getstate__方法不会被调用。这是为什么,并且可以指定要腌制的集合的子类的哪一部分?

python pickle

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