小编pfa*_*bri的帖子

在sqlalchemy中设置默认值

我想设置一个基于SQLAlchemy模型中另一个表的列默认值.

目前我有这个:

Column('version', Integer, default=1)
Run Code Online (Sandbox Code Playgroud)

我需要的是(大致)这个:

Column('version', Integer, default="SELECT MAX(1, MAX(old_versions)) FROM version_table")
Run Code Online (Sandbox Code Playgroud)

我如何在SQLAlchemy中实现它?

python sqlalchemy

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

创建字典,其中键是变量名

我经常想创建一个字典,其中键是变量名。例如,如果我有变量a并且b我想生成:({"a":a, "b":b} 通常在函数末尾返回数据)。

python中是否有任何(理想情况下内置的)方法可以自动执行此操作?即有一个函数,这样create_dictionary(a,b)返回{"a":a, "b":b}

python python-3.x

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

如果使用scale_x_datetime,时间序列图将偏移2小时

问题:

我正在尝试使用ggplot绘制时间序列,但由于某种原因,数据会偏移两个小时.

数据:

> test <- structure(list(interval = structure(c(1465423500, 1465423800, 
1465424100, 1465424400, 1465424700, 1465425000, 1465425300, 1465425600, 
1465425900, 1465426200, 1465426500, 1465426800, 1465427100), class = c("POSIXct", 
"POSIXt"), tzone = ""), mean = c(0.339622641509434, 0.132075471698113, 
0.150943396226415, 0.0754716981132075, 2.09433962264151, 0.528301886792453, 
0.867924528301887, 0, 1.47169811320755, 0.30188679245283, 0.132075471698113, 
0.320754716981132, 0.679245283018868)), .Names = c("interval", 
"mean"), class = c("tbl_df", "data.frame"), row.names = c(NA, 
-13L))

> test
    Source: local data frame [13 x 2]     

interval      mean     
(time)     (dbl)     
1  2016-06-09 00:05:00 0.3396226 # First value: 5 minutes past midnight    
2 …
Run Code Online (Sandbox Code Playgroud)

timezone timestamp r time-series ggplot2

5
推荐指数
2
解决办法
878
查看次数

如何用非易失性结构初始化易失性结构?

背景

我正在尝试创建一个struct. 其中一个不会更改,因此被声明const,但另一个可能会异步更改,因此我想制作它volatile

问题

我正在尝试使用const结构的实例来初始化volatile一个。但是,如果我使用volatile关键字编译器会抛出这个错误:

passing 'volatile rect' as 'this' argument of 'rect& rect::operator=(rect&&)' discards qualifiers [-fpermissive]at line 15 col 8
Run Code Online (Sandbox Code Playgroud)

可重现的例子

#include <Arduino.h>

struct rect {
    int x0;
    int y0;
    int width;
    int height;
};

const    rect outer    = {0, 0, 10, 5};
volatile rect inner;

void setup() {
    inner = {outer.x0 + 1, outer.y0 + 1,
             outer.width - 2, outer.height - 2};
}

void loop() { …
Run Code Online (Sandbox Code Playgroud)

c++ struct initialization arduino volatile

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

以编程方式控制 Windows 10 的“电源模式”

背景

你好。我有一台 SB2(Surface Book 2),我是不幸的用户之一,面临着困扰许多 SB2 机器的臭名昭著的 0.4GHz 限制问题。问题在于,SB2 突然且非常频繁地根据环境温度从 4GHz 提升到 0.4GHz 严重节流,并停留在那里一两分钟(这会导致整个笔记本电脑的速度严重减慢)。这是非常令人沮丧的,几乎使机器无法用于即使是最简单的工作负载。

微软显然表示它在 2019 年 10 月更新中修复了该问题,但我和其他几位用户仍然面临着这个问题。我非常肯定我的机器是最新的,我什至手动安装了所有最新的 Surface Book 2 固件更新。

以下是问题发生时 CPU 状态的捕获: 图像节流

正如你所看到的,单元本身的温度并不高,但CPU却精确地节流在0.4GHz。

有关此的更多链接:1 2

解决方法

我几乎尝试了一切。降低电压直至屏幕冻结、禁用 BD PROCHOT、禁用 GPE 中的电源节流、搞乱注册表、调整多个 CPU/GPU 设置。什么都没起作用。

当限制开始时你只能做两件事:

  1. 等待它完成(通常需要一两分钟)。
  2. 更改Windows 10 中的电源模式。即使您将其从“最佳性能”更改为“最佳电池寿命”也不重要,重要的是您更改了它。一旦您这样做,节流将在几秒钟内完全停止。这是唯一有效的手动解决方案。

问题

在实践中,无论工作量有多大,每 10 秒更改一次滑块,都可以无限地带来流畅的体验,而不会受到限制。当然,这不是一个可行的手动解决方法。

从理论上讲,我认为如果我能找到一种以编程方式控制此模式的方法,我也许可以通过每 10 秒左右切换一次电源模式来告别这个问题。

我不介意它是在 win32 (winapi) 还是 .net 中。我查了很多,发现了这个有关电源管理的内容,但是win32中似乎没有设置界面。我可能会忽略它,所以这是我的问题:

有没有办法以编程方式控制 Windows 10 中的电源模式?

.net c++ winapi

5
推荐指数
2
解决办法
3384
查看次数

从 Python 中的函数访问类变量

我正在使用 OOP 编写我的第一个 Python 游戏,但在访问类变量时遇到了一些问题。具体来说,我想从一个方法访问一个类变量。对于某些变量它有效,但对于特定的布尔变量它不起作用:

class Player(object):
    eaten = False

    def __init__(self):
          .....

def eat(Player):
    Player.eaten = True
Run Code Online (Sandbox Code Playgroud)

问题是,当函数被调用时,eated不会覆盖类中的变量。对于其他变量,它可以正确执行我想要的操作。

编辑:如果在类播放器的方法中,我print(self.eaten)eat()调用后添加,它仍然总是打印False

 class Player(object):
    eaten = False

    def move():
        print(self.eaten)

def eat(Player):
    Player.eaten = True
Run Code Online (Sandbox Code Playgroud)

谢谢!

python oop

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

C++始终是构造函数中的Const引用?

请考虑以下代码:

#include <iostream>
using namespace std;

class A {
public:
    A() = default;

    A(const A& rhs) {
        cout << "Copy was made!" << endl;
    }
};

class B {
public:
    A data;
    int foo;

    B(A data, int foo) : data(data), foo(foo) {
    }
};

int main() {
    A data;

    B foo(data, 10);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

打印出:

复制了!

复制了!

是的,它是正确的,它复制两次!

当我们传递dataB's构造函数时,第一个副本发生.当我们data从构造函数复制到memeber变量时,第二个副本就会发生.

我们知道我们不能复制1份(除非我们去heap & pointers).那么为什么我们不总是写:

B (const A& data, const int& foo, const SomeOtherType& …

c++ constructor pass-by-reference pass-by-value c++11

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