小编Irf*_*fan的帖子

Python doctests的多版本支持

我正在写这样的doctests:

>>> some_function(a=1, b=2)
{u'id': u'123', u'name': u'abc'}
Run Code Online (Sandbox Code Playgroud)

这适用于Python版本2.5,2.6和2.7但对于Python 3失败并出现以下错误:

Expected:
    {u'id': u'123', u'name': u'abc'}
Got:
    {'id': '123', 'name': 'abc'}
Run Code Online (Sandbox Code Playgroud)

问题是,如果我写这样的doctests:

>>> some_function(a=1, b=2)
{'id': '123', 'name': 'abc'}
Run Code Online (Sandbox Code Playgroud)

它们仅适用于Python3,并且在Python2版本上失败.我的问题是如何使其跨版本兼容?

python doctest python-3.x

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

生成所有可能的小键盘/小键盘序列

我正在尝试生成所有可能的键盘序列(目前只有7位数长度).例如,如果移动键盘如下所示:

1 2 3
4 5 6
7 8 9
  0
Run Code Online (Sandbox Code Playgroud)

一些可能的序列可以是:

123698
147896
125698
789632

要求是数字的每个数字应该是前一个数字的邻居.

以下是我计划如何开始这个:

有关邻居的信息从键盘变为键盘,因此我们必须对其进行硬编码:

neighbors = {0: 8, 1: [2,4], 2: [1,3,5], 3: [2,6], 4: [1,5,7], 5: [2,4,6,8], 6: [3,5,9], 7: [4,8], 8: [7,5,9,0], 9: [6,8]}
Run Code Online (Sandbox Code Playgroud)

我将遍历所有数字,并将附加一个可能的邻居,直到达到所需的长度.

编辑:更新的邻居,没有允许对角线编辑2:数字可以重复使用

python algorithm numbers

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

Django:模型名称冲突

我想在我的项目中使用不同的开源应用程序.问题是两个不同的应用程序使用相同的模型名称和它们自己的模型定义.

我试过用:

    class Meta:
        db_table = "db_name"
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我仍然在syncdb上遇到字段名称冲突错误.有什么建议.

更新

我实际上是在尝试将Satchmo与Pinax集成.错误是:

错误:一个或多个模型未验证:

contact.contact:字段'user'的访问者与相关的m2m字段'User.contact_set'冲突.将related_name参数添加到"user"的定义中.

friends.contact:m2m字段'用户'冲突的访问者与相关字段User.contact_set'.将related_name参数添加到"users"的定义中.

你是对的,表名已经是唯一的.我分析了模型,模型'联系'是两个不同应用程序的两个模型.当我评论其中一个模型时,它工作正常.

可能是错误,因为两个应用程序都在PYTHON_PATH中,当其他应用程序定义具有相同名称的模型时,就会发生冲突.

python django django-models

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