小编xos*_*tom的帖子

notepad ++无缝地在python控制台中运行所选代码

我经常使用R来分析数据,并且非常喜欢Notepad ++和NppToR.特别是,NppToR可以毫不费力地运行部分代码.我只是突出显示一段R代码来运行并按下F8.然后代码神奇地在R控制台中运行.

现在,我需要使用python来分析数据.我知道ipython非常适合交互式工作,但复制一段python代码并手动将其粘贴到ipython控制台中总是非常烦人.此外,缩进通常是混合的,因此整个行都无法运行.请注意,我想运行"选定"代码行,而不是整个文件.

所以我正在寻找类似于NppToR的程序/插件/宏,但是使用python/ipython控制台.我在网上搜索过,但找不到这样的.有些插件很好,但不完全是我想要的.例如,Python Script可以扩展Notepad ++本身,但不能扩展.各种其他"运行"扩展使整个文件可以在python中运行.

python r notepad++ ipython

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

valgrind` --track-fds = yes`没有fds 0,1,2

我正在使用以下设置运行valgrind : valgrind --tool=memcheck --tool=callgrind --num-callers=20 --track-fds=yes --error-exitcode=1 CMD. 特别是,--track-fds=yes按照需要工作,但由于fds 0,1,2应该打开,每次运行都会失败.但是,我不想放弃--track-fds,因为它肯定会提供有意义的信息.那么,是否存在valgrind选项/方法来跟踪除0,1,2之外的fds?

==5872== FILE DESCRIPTORS: 3 open at exit.
==5872== Open file descriptor 2:
==5872==    <inherited from parent>
==5872== 
==5872== Open file descriptor 1:
==5872==    <inherited from parent>
==5872== 
==5872== Open file descriptor 0: /dev/pts/0
==5872==    <inherited from parent>
==5872== 
==5872== 
==5872== Events    : Ir
==5872== Collected : 3081079256
==5872== 
==5872== I   refs:      3,081,079,256
Run Code Online (Sandbox Code Playgroud)

valgrind

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

python c api 创建 python 模块

我正在用 C 语言编写一个 python 模块,并寻找一种在模块内部编写模块的方法。

PyMODINIT_FUNC
initA(void)
{
PyObject*  pMod, pSubMod;
pMod = Py_InitModule3("A", A_Methods, A_Doc);
pSubMod = PyModule_New("B");
PyModule_AddStringConstant(pSubMod, "__doc__", B_Doc);
PyModule_AddIntConstant(pSubMod, "SOMETHING", 10);
PyModule_AddObject(pMod, "B", pSubMod);
... and so on ...
Run Code Online (Sandbox Code Playgroud)

编译后,我尝试通过各种导入方法访问模块及其常量

>>> import A
>>> print A.B.SOMETHING
10
>>> from A import B
>>> print B.SOMETHING
10
>>> from A.B import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named B
Run Code Online (Sandbox Code Playgroud)

前两个听起来很合理,而且工作得很好。然而,最后一个不起作用。我期望我应该有一个相当于__init__.py脚本的代码。但是,我不想编写单独的 .py 文件;相反,我想直接在 C init 函数中包含这样的代码。

作为参考,我附上了两个模块的 …

c python python-module

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

对于枚举,替换失败不是错误(SFINAE)

有没有办法使用替换失败不是枚举的错误(SFINAE)?

template <typename T>
struct Traits
{
}
template <>
struct Traits<A>
{
};
template <>
struct Traits<B>
{
  enum
  {
     iOption = 1
  };
};

template <T>
void Do()
{
  // use Traits<T>::iOption
};
Run Code Online (Sandbox Code Playgroud)

然后,Do<B>();工作和Do<A>();失败.但是,当iOption不存在时,我可以提供默认行为.所以我将Do to DoOption的一部分分开了.

template <typename T, bool bOptionExist>
void DoOption()
{
  // can't use Traits<T>::iOption. do some default behavior 
};
template <typename T>
void DoOption<T, true>()
{ 
  // use Traits<T>::iOption
};
template <T>
void Do()
{
  // 'Do' does not use …
Run Code Online (Sandbox Code Playgroud)

c++ traits sfinae

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

C++ if语句数学评估错误

我有一个我认为是数学错误的东西,我不完全理解它为什么会发生.

if (mNextBottomIndex < mBlocks.size() - 1) {
  if (mBlocks[mNextBottomIndex + 1]->getGlobalPosition().y >= -mBlocks[mNextBottomIndex + 1]->getHeight()) {
    mBlocks[mNextBottomIndex + 1]->setAlpha(1.0f);
    mNextBottomIndex++;
  }
}
Run Code Online (Sandbox Code Playgroud)

它正在评估inner if statement因为mBlocks.size() = 0mNextBottomIndex = 3(或mNextBottomIndex等于任何数字> 0).所以我的问题是,鉴于最后一句中的变量,它是如何过去的outer if statement?应用程序不在后台线程中处理这些变量,并且变量在之前和之后是相同的outer if statement

我纠正外if statement

if (mBlocks.size() != 0 && mNextBottomIndex < mBlocks.size() - 1) {
  if (mBlocks[mNextBottomIndex + 1]->getGlobalPosition().y >= -mBlocks[mNextBottomIndex + 1]->getHeight()) {
    mBlocks[mNextBottomIndex + 1]->setAlpha(1.0f);
    mNextBottomIndex++;
  }
}
Run Code Online (Sandbox Code Playgroud)

它现在似乎没有崩溃.

c++

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

标签 统计

c++ ×2

python ×2

c ×1

ipython ×1

notepad++ ×1

python-module ×1

r ×1

sfinae ×1

traits ×1

valgrind ×1