小编ted*_*ted的帖子

Python如何管理int和long?

有没有人知道Python如何管理内部int和long类型?

  • 它是否动态选择正确的类型?
  • int的限制是什么?
  • 我使用的是Python 2.6,与以前的版本有什么不同?

我该如何理解下面的代码?

>>> print type(65535)
<type 'int'>
>>> print type(65536*65536)
<type 'long'>
Run Code Online (Sandbox Code Playgroud)

更新:

>>> print type(0x7fffffff)
<type 'int'>
>>> print type(0x80000000)
<type 'long'>
Run Code Online (Sandbox Code Playgroud)

python integer

106
推荐指数
4
解决办法
19万
查看次数

在乳胶中列出包装清单

我试图插入一个带有listingpackage的代码片段,并希望编号的行.但是,根据手册,我只希望每隔5行和第1行编号(数字为beeing(1,5,10,15,...)):

stepnumber=5
Run Code Online (Sandbox Code Playgroud)

应该做的伎俩,但是使用我的最小例子(见下),我得到行号1,6,11,16,...

可能是我误解了他曾经的手册8did,但是我无能为力.

如果一个真正的乳胶大师在附近,我会更喜欢的东西,每个亚麻布打印,但每五分之一用粗体/不同的样式编号而不是:1 2 3 4 5 6 7 8 9 10 11 ...然而因为这不是在doku我相信它需要更深入的乳胶/列表知识.

PS:还有一个奇怪的事情,虽然我把"numberfirstline = false"我得到第1行(我没有设置numberfirstline也得到那个亚麻,这应该默认为假),这是jsu指出的东西是错的.

我正在使用miktex进行编译,如果有帮助的话.

提前致谢.

\documentclass{scrreprt}        %[twoside,headings=openright]
%Sourcecode formatting
\usepackage{listings}

\lstset{
         numbers=left,               % Ort der Zeilennummern
         stepnumber=5,               % Abstand zwischen den Zeilennummern       
         numberfirstline=false
 }

\begin{document}
\lstinputlisting{sourcecode/AES/lookupSoftcoded.S} %codefile with 15 lines or so...
\end{document}
Run Code Online (Sandbox Code Playgroud)

latex listings

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

关闭工作簿的文件句柄(apache poi)

我使用了构建了一个新的工作簿WorkbookFactory.create(new File("path/to/xlsx")).但是,当我尝试在启动应用程序后在Excel中编辑文件时,我收到一条错误消息,指出该文件正在使用中.我是否必须释放文件,如果是,如何?(我Workbook.close()在api文档中找不到任何内容)或者我必须在其他地方查找?

我不知道在哪里可以看; 应用程序不会导致csv和excel文件的这些问题我只是调用转换器(xls => csv),这是唯一的区别.

(我正在使用POI 3.8)

file-io apache-poi

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

实现具有多个索引的字典的数据结构?

我正在寻找一个数据结构,在两个不同的索引下保存相同的值,我可以通过任何一个访问数据.

例:

x = mysticalDataStructure()
x.add(1,'karl', dog)
x.add(2,'lisa', cat)

$ x[1].age
2
$ x['karl'].age
2
$ x[1].age = 4
$ x['karl'].age
4
Run Code Online (Sandbox Code Playgroud)

是否有任何预先滚动,或者什么是最好的方法来滚动我自己(我需要通过索引访问(数字从0到n以1为增量),并通过字符串).

collections.ordereddict似乎没有通过位置快速随机访问,据我所知,我只能用迭代器走它,直到我到达元素i(我可以按正确的顺序插入).

python dictionary

11
推荐指数
2
解决办法
8394
查看次数

SVN在两个存储库之间移动具有历史记录的代码

我必须处理两个存储库,并希望在保留历史记录的同时在两个存储库之间移动一个带有代码的目录.

我在这里读了几个问题,但我仍然不确定要走哪条路.我们的存储库是巨大的(文件(orkingcopy)不包括修订版>几GB),因为所有内容都已签入(代码+设计+ ...).

我到目前为止看到的解决方案是:

  1. svnadmin dump + filter + import:由于存储库大小而不是选项
  2. svnsync:我们已经在第二个存储库中有数据了(存储库已经很大了,我认为合并它们不是一个好主意,除了decidng不是我的工作),而且从我收集到的这需要第二个存储库是空.
  3. 第三方解决方案:反复崩溃,因为它无法删除文件,因为"另一个进程打开了文件"(尽管我可以通过操作系统删除文件,但它是由脚本创建的)

是否有其他解决方案,方法,或者我错过了其中一个解决方案?

svn svnsync svndumpfilter svnadmin svndump

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

使用typeid处理不同类型

我试图使用boost :: any来封装sqlite返回值.然后我试着写一个循环来打印这些.

我的第一个想法是做一些像:

for(boost::any field: row) {
  switch(field.type()) {
      case typeid(double):
          double value = any_cast<double>(field);
          ...
          break;
      case typeid(other type):
          ...
  }
}
Run Code Online (Sandbox Code Playgroud)

现在对于有经验的程序员来说,显然这不起作用,因为typeid返回实例而不是数字id.经过一些研究,我认为我可能会尝试,typeid(...).hash_code()但这不足够constexpr合格(除了哈希冲突的危险).

问题

  1. 有没有比建立一个过度的if ... else ...迷宫更好的方法来处理基于他们的typeid的对象?
  2. 有没有理由hash_code不是const_expr?这是单独编译目标文件的结果吗?
  3. 有什么用std::type_index?考虑到它只是提供了一些额外的运营商(<,<=,>,>=),为什么却无法其功能与整合std::type_info

c++ sqlite boost boost-any

9
推荐指数
2
解决办法
2002
查看次数

正则表达式在tcl中的怪癖

这个问题是关于理解 Vivado中内置的TCL 8.5中特定正则表达式的行为,特别是在or两个正则表达式部分中我得到了意想不到的结果:

我致力于使用正则表达式缩进命令行的文本块.我的第一个想法是用缩进来替换每个newline用一个newline 一些spaces(X在这里为了清楚起见),所以:

puts [regsub -all "\n" "foo\nBar\nBaz" "\nXX"]
foo
XXBar
XXBaz
Run Code Online (Sandbox Code Playgroud)

这不会缩进第一行,以匹配我使用的第一行^:

puts [regsub -all "^" "foo\nBar\nBaz" "\nXX"]

XXfoo
Bar
Baz
Run Code Online (Sandbox Code Playgroud)

现在应该只是将两个正则表达式部分组合在一起|,但是我得到输出我无法解释:

puts [regsub -all "^|\n" "foo\nBar\nBaz" "\nXX"]

XXfoo
XX
XXBar
XX
XXBaz
Run Code Online (Sandbox Code Playgroud)

演示

附加新行和标识符(X)来自哪里?为什么看起来我有两次换人?这是一个错误,还是我对正则表达式语法有点不了解?

对于completnes来说,这是我现在使用的正则表达式 puts [regsub -all -line "^" "foo\nBar\nBaz" "XX"]

regex tcl

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

python中的成员之后的文档(使用doxygen)

我正在使用doxygen并具有以下代码:

def __init__(self):
    '''

    '''
    if not '_ready' in dir(self) or not self._ready:
        self._stream = sys.stderr   ##!< stream to which all output is written
        self._ready = True          ##!< @internal Flag to check initialization of singelton
Run Code Online (Sandbox Code Playgroud)

由于某种原因,doxygen告诉我self._stream(Member _stream)没有记录.我可以用评论来记录它,比如doxygen docu 在成员之后的文档中描述,如果是,那么,是什么方式?

**编辑:**这似乎与我没有新线有关,例如:

class escapeMode(object):
    '''
    Enum to represent the escape mode.
    '''
    ALWAYS      = 1     ##!< Escape all values
    NECESSARY   = 2     ##!< Escape only values containing seperators or starting with quotation
Run Code Online (Sandbox Code Playgroud)

Doxygen只是抱怨ALWAYS没有文档,我想避免在每个新属性后面插入换行符,因为它会破坏用于分隔逻辑块(如循环或来自周围代码的语句)的换行符的值

python doxygen

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

内存通道

问题(背景):

我的目标是一台具有四个内存通道和一个 pcie 卡的机器,我希望尽可能快地将数据传输到它。考虑到该卡理论上可以单程传输大约8GB/s(7.88GB/s),这将导致大约15.8GB/s的吞吐量。看看这个我知道我的最大内存传输速率是 12.8GB/s。即使不考虑实际安装的内存,很明显 PCIe 吞吐量超过了一个内存通道的能力。

为了避免这种情况,我想确保我流到设备的内存块最终在与我收到的频道不同的频道上。

  1. 是否可以在 linux 内核中的特定通道上分配内存,如果可以,要使用的接口是什么?
  2. 无论如何要获得有关物理内存映射到不同通道的信息(哪些地址范围/页面帧在哪个通道上)?
  3. 是否有一个接口来请求将页面移动到/分配到特定框架上?
  4. 如何确保页面在被换出/重新定位之前被固定?(假设我必须这样做,magic_allocate_page_on_channel(); get_user_pages(...)我会在短时间内(理论上)再次换出页面,并且可能会被交换到不同的框架get_user_pages

linux memory memory-management allocation

7
推荐指数
0
解决办法
478
查看次数

使用extern模板时链接器错误

我有一个模板工作代码.与stl :: string类似,我主要使用我的模板,在多个编译单元中有一个参数.为了节省时间,我试图使用extern实例化.但是,如下更改行会产生错误.做正确的方法是什么?(PS使用c ++ 0x标志编译gcc)

typedef myTemplate_base<commonType> myTemplate;
extern template class myTemplate_base<commonType>; //using "extern template myTemplate" wont work
Run Code Online (Sandbox Code Playgroud)

我在项目中添加了一个带有以下内容的额外cpp文件.

template class myTemplate_base<commonType>;
Run Code Online (Sandbox Code Playgroud)

链接器出现此错误消息(myTemplate someVar;将主文件中的第一个对象instantiation()行作为错误源):

未定义的引用'myTemplate_base :: ~myTemplate_base()'

但是,此类型在类中具有以下定义 ~myTemplate() = default;

编辑:如果你有一个更好的标题请评论,所以合适的人看看这个

编辑2:有趣的是,添加template class myTemplate_base<commonType>会极大地增加可执行文件的大小(在450k二进制文件上+ 100k),即使模板在main中使用(编译我必须注释掉extern部分).这暗示链接器保持模板的两个实现具有相同的实例/我忽略了某些东西.

c++ linker templates c++11

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