小编jlc*_*lin的帖子

需要脚本/功能/命令用其他文本环绕文本

我是Vim脚本的新手.我需要编写一个脚本,用一些文本包围其他文本.例如:

\surroundingtext{surrounded text}
Run Code Online (Sandbox Code Playgroud)

(是的,它适用于LaTeX).我想要突出显示"包围文本"并发出命令,或者将"包围文本"作为正则表达式命令的结果.

我想问题是,如何把它放在一个函数中?

谢谢,杰里米

vim

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

适用于Python中单元测试的文件层次结构

我正在开发Python包/模块的集合(没有可执行文件).设置文件层次结构以进行测试的正确/最佳方法是什么.我可以想到两种情况:

场景1:

AllPackages/
    package1/
        module1-1.py
        module1-2.py
    package2/
        module2-1.py
        module2-2.py
    tests/
        package1/
            test_module1-1.py
            test_module1-2.py
        package2/
            test_module2-1.py
            test_module2-2.py
Run Code Online (Sandbox Code Playgroud)

场景2:

AllPackages/
    package1/
        module1-1.py
        module1-2.py
        tests/
            test_module1-1.py
            test_module1-2.py
    package2/
        module2-1.py
        module2-2.py
        tests/
            test_module2-1.py
            test_module2-2.py
Run Code Online (Sandbox Code Playgroud)

我是单元测试的新手(我知道我早就应该这样做了)所以我不确定哪种方法更好,我正在寻找那些有更多经验的人的建议.

谢谢!

python unit-testing

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

使用Python读取FORTRAN格式的数字

我必须读取一个包含用(非常)旧FORTRAN样式格式化的数字的数据文件.该文件的一行如下所示:

 4.500000+1 1.894719-3 4.600000+1 8.196721-3 4.700000+1 2.869539-3
Run Code Online (Sandbox Code Playgroud)

文件(或其大部分)以固定宽度格式包含这些数字.在Python中读取这些数字的麻烦E在于这些数字中没有.看看会发生什么:

>>> float('4.50000+1')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): 4.50000+1
Run Code Online (Sandbox Code Playgroud)

我可以编写一个解析器来阅读它,但想知道这是否已经完成.这是一种旧的FORTRAN格式,所以我想也许有人已经弄清楚了.有谁知道图书馆要读这样的数字?

python fortran

5
推荐指数
3
解决办法
2568
查看次数

如何调试SCons脚本

我有一个需要调试的SCons脚本。在发生的所有事情中的某个地方,我遇到了问题,我需要找出问题的根源。

我想调试SCons脚本,但是不确定如何设置它。我同时拥有PyCharm和Komodo IDE,但是我不知道如何使它们工作。

我已经试过了:

scons --debug=pdb <args...>
Run Code Online (Sandbox Code Playgroud)

但这使我陷入了SCons的困境;我需要进入我创建的SCons运行的脚本的内部。

有人可以告诉我如何设置PyCharm或Komodo来调试SCons脚本吗?如果那不可能,那么我可以使用其他调试选项。

debugging komodo scons pycharm

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

C++:为什么'operator + ='定义但不是'operator +'用于字符串?

为什么operator+=定义std::stringoperator+未定义?请参阅下面的我的MWE(http://ideone.com/OWQsJk).

#include <iostream>
#include <string>
using namespace std;

int main() {  
    string first;
    first = "Day";
    first += "number";
    cout << "\nfirst = " << first << endl;

    string second;
    //second = "abc" + "def";       // This won't compile
    cout << "\nsecond = " << second << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ string operators c++11

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

jsonschema 中的 items 和 properties 有什么区别?

我只是在学习jsonschema。我不清楚items和之间有什么区别properties。有人可以解释一下吗?

jsonschema

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

如何在Python中确定"单词"大小

我需要知道Python中'word'中的字节数.我需要这个的原因是我需要从文件中读取的单词数量; 如果我知道单词中的字节数,我可以使用该file.read(num_bytes)函数从文件中读取适当的数量.

如何确定单词中的字节数?

python byte cpu-word file-read

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

C++:避免​​重复的符号链接器错误

我收到链接器错误:

duplicate symbol __ZN5ENDF64FileILNS_7MF_enumE1EE4readEv in:
    Read.cpp.o
    Material.cpp.o
Run Code Online (Sandbox Code Playgroud)

其中重复的符号名称是:

$ c++filt __ZN5ENDF64FileILNS_7MF_enumE1EE4readEv
  ENDF6::File<(ENDF6::MF_enum)1>::read()
Run Code Online (Sandbox Code Playgroud)

我知道我不能在多个地方定义相同的功能 - 这是导致此链接器错误的原因.(我已经看到了这个问题:ld:复制符号)我不认为我read()在多个地方定义了函数,但是链接器(clang++)说我做了.

我在哪里复制read()符号?

我的代码结构如下所示:

//MFs.hpp
#ifndef MFS_HPP
#define MFS_HPP
enum class MF_enum {
...
}
#endif


//File.hpp
#ifndef FILE_HPP
#define FILE_HPP

#include "MFs.hpp"

// Definition of class File
template<>
class File {
...
}

// Definition of File<...>::read() function
template <>
void File<1>::read()
{
    std::cout << "Reading into MF=1"<< std::endl;
}

#endif
Run Code Online (Sandbox Code Playgroud)

没有,File.cpp因为File课程是模板化的.所有定义(和声明)都在File.hpp

// …
Run Code Online (Sandbox Code Playgroud)

c++ linker clang

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

C++ 11仅允许继承某些类

我有一个基类,我想阻止大多数类的继承,但允许它为我可以硬编码的一些类.这可能在C++中?使用C++ 11更容易吗?

我想也许我会使用这个final参数,但这会阻止任何继承.

// This can be derived by anyone
class Base{
...
}

// This should only be derived by those I say can derive it
class Base2: public Base{
    protected:
         int SpecialVar;
}
Run Code Online (Sandbox Code Playgroud)

我想要这个的原因是有些类需要访问,SpecialVar而对其他类没有意义.所有类的功能仍然有意义Base.

c++ inheritance c++11

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

CMake-如何创建可执行文件,但不添加到“所有”目标?

使用CMake,我构建了一系列可执行文件,然后将它们添加为测试,如下所示:

set(TestID 1)
add_executable (Test${TestID} Test${TestID}.cpp)

# Create test
configure_file(${TestID}.endf ${TestID}.endf COPYONLY)
add_test( NAME ${TestID} COMMAND Test${TestID} )
Run Code Online (Sandbox Code Playgroud)

这可以正常工作-创建可执行文件并正确添加测试。但是,我不希望将测试可执行文件添加到all目标中。

我不希望将我的测试与其他所有内容一起构建,而是希望它们在执行测试之前就构建。可能作为...的一部分make test或作为ctest

我怎样才能做到这一点?

cmake target ctest

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