小编Don*_*kby的帖子

你能用C++保护嵌套类吗?

我有一个类,它只是某个类层次结构中的类所需要的.我想知道是否可以将类嵌套在最高级别的受保护部分中,并让所有其他类自动继承它?

c++ nested class protected

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

比较PyCharm中的两个Python方法

我最近从Eclipse切换到PyCharm,我想知道PyCharm是否可以将两种方法相互比较,就像Eclipse一样.到目前为止,我的搜索失败了.

我有两种类似的方法,我想确切地检查它们之间的区别.

python ide pycharm

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

编程成员函数时有什么更好的做法?

我已经看到成员函数在它们所属的类内部以及类外部编写了一个函数原型.我只使用第一种方法编程,但想知道使用另一种或仅仅是个人偏好是否更好?

class member-functions

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

LabVIEW中不鼓励集群吗?

我在LabVIEW 仪器驱动程序指南(第6.2节)中找到了这个注释:

如果您需要的终端数量多于建议的模式,请重新考虑VI上控件和指示器的分组.除错误输入和错误输出外,请避免使用群集来最小化终端数量.群集通常要求用户从群集中解包和重新绑定数据.

如果National Instruments不鼓励群集,那么"重新考虑对VI的控制和指标进行分组"的意思是什么?

我真的很喜欢使用集群,我认为他们已经改进了我的VI.我错过了什么吗?

labview coding-style

4
推荐指数
2
解决办法
4770
查看次数

PHP函数strtotime()支持哪些日期格式?

我非常喜欢PHP函数strtotime(),但是用户手册没有给出支持的日期格式的完整描述.它只给出了一些例子,如"2000年9月10日","+1周2天4小时2秒"和"下周四".

我在哪里可以找到完整的描述?

php datetime

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

我可以从 OpenERP 的树视图中触发窗口操作吗?

我正在尝试在 OpenERP 中创建从生产订单到原材料装箱单的快捷方式。

我可以让相关窗口链接出现在生产订单表单上,但我真的希望能够通过单击屏幕顶部的“操作”按钮从生产订单树视图中访问装箱单。这样,我就不必打开生产订单。似乎可以通过使用标记中的keyword="client_action_multi"属性从树视图访问向导<wizard>。是否有与窗口操作等效的东西?

我想我可以编写一个触发窗口操作向导,但我希望有更简单的东西。

python openerp

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

pygame的.如何调整曲面大小并使所有对象与新窗口大小成比例?

如果我将pygame窗口设置为可调整大小,然后单击并拖动窗口的边框,窗口将变大,但表面上的任何blit都不会随之变大.(这是可以理解的)我怎么做到这样,当我调整窗口大小时,所有blit对象调整大小并正确填充窗口?

例如:假设我有一个200 x 200的窗口,我在window_width/2和window_height/2处按下了一个按钮.按钮将位于窗口的中心,为100 x 100.现在,如果我将窗口调整为300 x 300,则按钮将保持为100 x 100而不是150 x 150.

我试过搞乱pygame.Surface.get_width等,但没有运气.基本上我正在尝试调整程序窗口的大小,并使所有blit图像保持成比例.

python pygame surface blit resizable

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

压缩Django迁移时的循环依赖

我们已经创建了一个大型Django应用程序,我们想要压缩迁移.但是,压缩的迁移在我们的应用程序中的应用程序之间存在循环依赖关系.如何在不破坏Django迁移压缩的情况下打破这些循环依赖?

我已经创建了一个小样本项目来重现问题.该项目有两个应用程序:fruitmeat.一个Apple有许多Bacon 孩子,并且Bacon有许多Cranberry儿童.你可以看到水果应用程序依赖于肉类应用程序,肉类应用程序取决于水果应用程序.

第一次提交创建所有三个型号,每个键和外键的名称字段CranberryBaconBaconApple.调用makemigrations创建三个迁移:

  • fruit/0001_initial创建AppleCranberry模型
  • meat/0001_initialBacon使用其外键创建模型Apple
  • fruit/0002_cranberry_bacon增加了从外键CranberryBacon

下一次提交会添加一个Apple.size字段,以便有一些东西可以压缩.呼叫makemigrations增加了另一个迁移:

  • fruit/0003_apple_size增加了这个size领域

squashmigrations现在运行会创建一个带有循环依赖关系的压缩迁移.该squashmigrations文件给出了这样的建议:

要手动解析a CircularDependencyError,请将循环依赖关系循环中的一个ForeignKeys分解为单独的迁移,并使用它移动其他应用程序的依赖关系.如果您不确定,请查看当您被要求从模型创建全新迁移时,makemigrations如何处理该问题.在Django的未来版本中,将更新squashmigrations以尝试自己解决这些错误.

但是,如果我这样做,则额外的迁移未正确配置为替换.这意味着我当前经历过原始迁移的数据库会尝试再次添加外键字段并失败.

$ ./manage.py migrate
...
django.db.utils.ProgrammingError: column "bacon_id" of relation "fruit_cranberry" already exists
Run Code Online (Sandbox Code Playgroud)

如何告诉迁移系统两个新迁移会替换所有旧迁移?

python django

4
推荐指数
2
解决办法
1658
查看次数

抽象语法树中 Python f 字符串的行号

当我用ast模块解析源代码时,为什么linenoa Nameinside a的属性FormattedValue设置为 1,即使 f 字符串不在第 1 行?

我正在尝试查看函数定义中包含哪些源代码行,因此我正在遍历节点下方的抽象语法树FunctionDef节点。我将所有lineno属性收集到一个集合中,这告诉我哪些行是函数定义的一部分。

然而,当f-strings出现在 Python 3.6 中时,他们以某种方式打破了这种技术。下面是问题的一个例子:

import ast

code = """\

f'x{y}'
"""

tree = ast.parse(code)

print(ast.dump(tree, include_attributes=True))
Run Code Online (Sandbox Code Playgroud)

这是该脚本的输出:

Module(body=[Expr(value=JoinedStr(values=[Str(s='x', lineno=2, col_offset=0), FormattedValue(value=Name(id='y', ctx=Load(), lineno=1, col_offset=1), conversion=-1, format_spec=None, lineno=2, col_offset=0)], lineno=2, col_offset=0), lineno=2, col_offset=0)])
Run Code Online (Sandbox Code Playgroud)

我知道这很不可读,所以这里有一些额外的空格相同的输出:

Module(body=[Expr(value=JoinedStr(values=[
    Str(s='x', lineno=2, col_offset=0), 
    FormattedValue(value=Name(id='y',
                              ctx=Load(),
                              lineno=1,
                              col_offset=1),
                   conversion=-1,
                   format_spec=None,
                   lineno=2,
                   col_offset=0)], lineno=2, col_offset=0), lineno=2, col_offset=0)])
Run Code Online (Sandbox Code Playgroud)

唯一的源代码在第 2 行,那么这部分输出是什么?

Name(id='y',
     ctx=Load(),
     lineno=1,
     col_offset=1)
Run Code Online (Sandbox Code Playgroud)

我想这可能是行号内 …

python abstract-syntax-tree

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

PySide2 引发错误,“QPaintDevice:无法销毁正在绘制的绘制设备”

我试图在 a 上绘制一些东西QPixmap,但它在清理过程中抛出错误。

from PySide2.QtGui import QPixmap, QPainter
from PySide2.QtWidgets import QApplication

app = QApplication()
width = 200
height = 100
pixmap = QPixmap(width, height)
painter = QPainter(pixmap)
painter.drawLine(0, 0, 100, 100)
print('Done.')
Run Code Online (Sandbox Code Playgroud)

当我运行该程序时,我看到“完成”消息,然后出现错误。

Done.
QPaintDevice: Cannot destroy paint device that is being painted

Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
Run Code Online (Sandbox Code Playgroud)

我见过一些具有相同错误的类似问题,但不清楚是什么导致了错误或如何避免它。

python pyside2

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