小编Gar*_*ett的帖子

时间python脚本使用IPython魔术

如何使用iPython%time或%% timeit magic命令计时执行Python脚本?例如,我有script.py,我想知道执行需要多长时间.细微差别:script.py需要输入参数.以下似乎不起作用.

%%time script.py input_param1 input_param2
Run Code Online (Sandbox Code Playgroud)

python profiling ipython ipython-magic

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

在堆栈和堆上创建对象数组

请考虑以下代码:

class myarray
{
    int i;

    public:
            myarray(int a) : i(a){ }

}
Run Code Online (Sandbox Code Playgroud)

如何在堆栈上创建myarray对象数组,如何在堆上创建对象数组?

c++ arrays heap stack object

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

在类头中包含typedef

这是我的标题:

#ifndef TIMING_H
#define TIMING_H

#define MAX_MESSAGES 1000
typedef Message* MessageP; //inside the class?

class Timing {

public:

 Timing();

private:

 struct Message {
  Agent *_agent;
  double _val;
 };

 MessageP* _msgArr;
 int _waitingMsgs;


};
Run Code Online (Sandbox Code Playgroud)

我的问题是:我是否必须将typedef放在MessageP*_msgArr正上方的类块中,还是可以将它放在所有#define附近?

它不输出编译错误,所以我不确定.

c++

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

类声明中关键字"where"的作用是什么?

我正在查看MvcContrib Grid的源代码,并看到声明为的类:

public class Grid<T> : IGrid<T> where T : class
Run Code Online (Sandbox Code Playgroud)

这位有什么作用where T : class

c#

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

如何在python中使用装饰器更改函数的返回值?

我想创建一个装饰器来改变函数的返回值,如下所示:?

def dec(func):
    def wrapper():
        #some code...
        #change return value append 'c':3
    return wrapper

@dec
def foo():
    return {'a':1, 'b':2}

result = foo()
print result
{'a':1, 'b':2, 'c':3}
Run Code Online (Sandbox Code Playgroud)

python decorator

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

禁止 Mypy 注释

我从 Mypy 的表单输出中得到了大量的“注释”:

note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs  [annotation-unchecked]
Run Code Online (Sandbox Code Playgroud)

check_untyped_defs = false即使在 my 中明确设置也pyproject.toml无济于事。

我怎样才能抑制这些注释?

python mypy

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

如何从您自己的代码调用内部RC函数

我想重用stats 模拟偶然表的包中的R代码来计算p.value卡方检验的模拟.

查看chisq.test函数源代码时,您可以看到以下内容:

 if (simulate.p.value && all(sr > 0) && all(sc > 0)) {
        setMETH()
        tmp <- .Call(C_chisq_sim, sr, sc, B, E)
        STATISTIC <- sum(sort((x - E)^2/E, decreasing = TRUE))
        PARAMETER <- NA
        PVAL <- (1 + sum(tmp >= almost.1 * STATISTIC))/(B + 
            1)
    }
Run Code Online (Sandbox Code Playgroud)

这里有趣的是.Call电话:

tmp <- .Call(C_chisq_sim, sr, sc, B, E)
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我想做的是C_chisq_sim在我自己的代码中使用这个功能,但我无法做到.如果我尝试:

tmp <- .Call(C_chisq_sim, sr, sc, B, E, PACKAGE="stats")
Run Code Online (Sandbox Code Playgroud)

我收到一个C_chisq_sim object not found错误.如果我尝试:

tmp <- .Call("C_chisq_sim", …
Run Code Online (Sandbox Code Playgroud)

r

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

处理Python中缺少非空断言运算符的问题

我想允许 Mypy'strict_optional标志。但是,请考虑一下:

emails = [get_user(uuid).email for uuid in user_uuids]
Run Code Online (Sandbox Code Playgroud)

理论上get_user可以返回None,但在这个用例中,我知道它不能(如果确实如此,我也可以得到异常)。这必须变成:

emails = []
for uuid in user_uuids:
    user = get_user(uuid)
    assert user is not None
    emails.append(user.email)
Run Code Online (Sandbox Code Playgroud)

在 TypeScript 中,有一个非空断言运算符,它允许您仅添加 a !(如getUser(uuid)!.email)。

有没有更好或更优雅的方法来处理这个问题?

python mypy python-typing

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

通过引用传递比通过值更昂贵

是否存在传递引用比C++中的传值更昂贵的情况?如果是这样,那会是什么情况?

c++ pass-by-reference pass-by-value

9
推荐指数
3
解决办法
3724
查看次数

扩张/侵蚀修改内核选项

我想平滑二值化图像的轮廓,并认为侵蚀是最好的方法.我知道正常的工作方式是使用cvDilate(src,dst,0,iter); 其中0是3x3矩阵.

问题是3x3矩阵在我的图像中深深腐蚀.如何使用2x2矩阵或任何小于默认3x3矩阵的内容进行侵蚀.

opencv image-processing computer-vision

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