小编Fed*_*oni的帖子

什么是"头等"对象?

什么时候对象或其他东西在给定的编程语言中被称为"第一类",为什么?他们与不同的语言有什么不同?

编辑.当一个人说"一切都是对象"时(比如Python),他的确意味着"一切都是一流的"吗?

python language-agnostic

174
推荐指数
4
解决办法
5万
查看次数

C++模板Turing-complete?

我被告知C++中的模板系统在编译时是图灵完备的.这篇文章以及维基百科都提到了这一点.

你能提供一个利用这个属性的计算的重要例子吗?

这个事实在实践中有用吗?

c++ templates turing-complete template-meta-programming

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

Python:使用递归算法作为生成器

最近我写了一个函数来生成具有非平凡约束的某些序列.这个问题伴随着一种自然的递归解决方案.现在碰巧,即使对于相对较小的输入,序列也是几千个,因此我宁愿使用我的算法作为生成器而不是使用它来填充具有所有序列的列表.

这是一个例子.假设我们想用递归函数计算字符串的所有排列.以下天真算法需要额外的参数'storage',并在找到时添加一个置换:

def getPermutations(string, storage, prefix=""):
   if len(string) == 1:
      storage.append(prefix + string)   # <-----
   else:
      for i in range(len(string)):
         getPermutations(string[:i]+string[i+1:], storage, prefix+string[i])

storage = []
getPermutations("abcd", storage)
for permutation in storage: print permutation
Run Code Online (Sandbox Code Playgroud)

(请不要关心效率低下,这只是一个例子.)

现在我想将我的函数转换为生成器,即生成排列而不是将其附加到存储列表:

def getPermutations(string, prefix=""):
   if len(string) == 1:
      yield prefix + string             # <-----
   else:
      for i in range(len(string)):
         getPermutations(string[:i]+string[i+1:], prefix+string[i])

for permutation in getPermutations("abcd"):
   print permutation
Run Code Online (Sandbox Code Playgroud)

此代码不能正常工作(该函数的行为像一个空发生器).

我错过了什么吗?有没有办法将上述递归算法转换为生成器而不用迭代算法替换它

python recursion generator

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

为什么全球翻译锁定?

Python全局解释器锁的功能究竟是什么?编译为字节码的其他语言是否采用类似的机制?

python scripting multithreading locking bytecode

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

以大写字母分割字符串

在给定字符集出现之前拆分字符串的pythonic方法是什么?

例如,我希望'TheLongAndWindingRoad' 在任何大写字母的出现时分割 (可能除了第一个),并获得 ['The', 'Long', 'And', 'Winding', 'Road'].

编辑:它也应该拆分单个事件,即从'ABC'我想获得 ['A', 'B', 'C'].

python regex string

81
推荐指数
10
解决办法
5万
查看次数

查找包含给定文件的文件系统的大小和可用空间

我在Linux上使用Python 2.6.最快的方法是什么:

  • 确定哪个分区包含给定目录或文件?

    例如,假设它/dev/sda2已安装在/home,并/dev/mapper/foo已安装/home/foo.从字符串"/home/foo/bar/baz"我想恢复这对("/dev/mapper/foo", "home/foo").

  • 然后,获取给定分区的使用情况统计信息?例如,给定/dev/mapper/foo我想获得分区的大小和可用的可用空间(以字节或大约以兆字节为单位).

python linux filesystems diskspace vfs

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

如何在matplotlib中单独显示数字?

假设我在matplotlib中有两个数字,每个数字有一个数字:

import matplotlib.pyplot as plt

f1 = plt.figure()
plt.plot(range(0,10))
f2 = plt.figure()
plt.plot(range(10,20))
Run Code Online (Sandbox Code Playgroud)

然后我一次性展示

plt.show()
Run Code Online (Sandbox Code Playgroud)

有没有办法单独显示它们,即只显示f1

或者更好:我如何单独管理数字,如下面的"如意"代码(不起作用):

f1 = plt.figure()
f1.plot(range(0,10))
f1.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

49
推荐指数
3
解决办法
11万
查看次数

"近似的"最大公约数

例如,假设您有一个浮点数列表,它大约是常见数量的倍数

2.468,3.700,6.1699

这大约是1.234的倍数.您如何描述这种"近似gcd",您将如何进行计算或估算呢?

与我对这个问题的回答密切相关.

language-agnostic algorithm math floating-point greatest-common-divisor

44
推荐指数
4
解决办法
7644
查看次数

在C++中定义类字符串常量?

我已经看到了这两种风格的代码,我不确定一个是否比另一个更好(它只是风格问题)?你有什么建议可以选择一个而不是另一个.

 //Example1
 class Test {

    private:
        static const char* const str;

};

const char* const Test::str = "mystr";

//Example2
class Test {

     private:
         static const std::string str;

};

const std::string Test::str ="mystr";
Run Code Online (Sandbox Code Playgroud)

c++

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

Python:无符号32位逐位算术

试图回答其解决方案涉及IP地址和网络掩码的另一篇文章,我陷入了简单的按位运算.

在Python中是否有一种标准方法可以进行按位AND,OR,XOR,NOT操作,假设输入为"32位"(可能为负)整数或长整数,并且结果必须在范围内为长[ 0,2**32]?

换句话说,我需要一个有效的Python对应于无符号长整数之间的C位运算.

编辑:具体问题是:

>>> m = 0xFFFFFF00   # netmask 255.255.255.0
>>> ~m
-4294967041L         # wtf?! I want 255
Run Code Online (Sandbox Code Playgroud)

python math

31
推荐指数
4
解决办法
3万
查看次数