小编sth*_*sth的帖子

我应该在Python中针对坏/非法参数组合提出哪个例外?

我想知道在Python中指示无效参数组合的最佳实践.我遇到过一些你有这样功能的情况:

def import_to_orm(name, save=False, recurse=False):
    """
    :param name: Name of some external entity to import.
    :param save: Save the ORM object before returning.
    :param recurse: Attempt to import associated objects as well. Because you
        need the original object to have a key to relate to, save must be
        `True` for recurse to be `True`.
    :raise BadValueError: If `recurse and not save`.
    :return: The ORM object.
    """
    pass
Run Code Online (Sandbox Code Playgroud)

唯一令人烦恼的是,每个包装都有自己的,通常略有不同BadValueError.我知道在Java中存在java.lang.IllegalArgumentException- 是否很好理解每个人都将BadValueError在Python中创建自己的s或者是否有另一种首选方法?

python arguments exception

496
推荐指数
6
解决办法
20万
查看次数

如何在Rails控制台中获得良好的格式

我希望得到这样的东西看起来不错:

>> ProductColor.all
=> [#<ProductColor id: 1, name: "White", internal_name: "White", created_at: "2009-06-10 04:02:44", updated_at: "2009-06-10 04:02:44">, #<ProductColor id: 2, name: "Ivory", internal_name: "Ivory", created_at: "2009-06-10 04:02:44", updated_at: "2009-06-10 04:02:44">, #<ProductColor id: 3, name: "Blue", internal_name: "Light Blue", created_at: "2009-06-10 04:02:44", updated_at: "2009-06-10 04:02:44">, #<ProductColor id: 4, name: "Green", internal_name: "Green", created_at: "2009-06-10 04:02:44", updated_at: "2009-06-10 04:02:44">]
Run Code Online (Sandbox Code Playgroud)

这不起作用:

>> ProductColor.all.inspect
=> "[#<ProductColor id: 1, name: \"White\", internal_name: \"White\", created_at: \"2009-06-10 04:02:44\", updated_at: \"2009-06-10 04:02:44\">, #<ProductColor id: 2, name: \"Ivory\", internal_name: …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails irb

121
推荐指数
10
解决办法
6万
查看次数

大数组大小的分段错误

以下代码在2Gb机器上运行时给出了分段错误,但在4GB机器上运行.

int main()
{
   int c[1000000];
   cout << "done\n";
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

阵列的大小只有4Mb.可以在c ++中使用的数组大小是否有限制?

c++ arrays segmentation-fault

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

安全地覆盖C++虚函数

我有一个带有虚函数的基类,我想在派生类中重写该函数.有没有办法让编译器检查我在派生类中声明的函数是否实际覆盖了基类中的函数?我想添加一些宏或某些东西,以确保我不会意外地声明一个新的功能,而不是覆盖旧的功能.

举个例子:

class parent {
public:
  virtual void handle_event(int something) const {
    // boring default code
  }
};

class child : public parent {
public:
  virtual void handle_event(int something) {
    // new exciting code
  }
};

int main() {
  parent *p = new child();
  p->handle_event(1);
}
Run Code Online (Sandbox Code Playgroud)

这里parent::handle_event()调用而不是child::handle_event(),因为child的方法错过了const声明,因此声明了一个新方法.这也可能是函数名中的拼写错误或参数类型中的一些细微差别.如果基类的接口发生更改并且某些派生类未更新以反映更改,则也很容易发生.

有没有办法避免这个问题,我能以某种方式告诉编译器或其他工具为我检查这个吗?任何有用的编译器标志(最好是g ++)?你如何避免这些问题?

c++ overriding virtual-functions

98
推荐指数
6
解决办法
10万
查看次数

头文件中的变量声明 - 静态与否?

当重构一些时,#defines我遇到了类似于C++头文件中的以下声明:

static const unsigned int VAL = 42;
const unsigned int ANOTHER_VAL = 37;
Run Code Online (Sandbox Code Playgroud)

问题是,静态会产生什么不同,如果有的话?请注意,由于经典#ifndef HEADER #define HEADER #endif技巧(如果重要),不可能多次包含标题.

VAL如果标题包含在多个源文件中,静态是否只创建了一个副本?

c c++ static

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

如何在matplotlib中添加第二个x轴

我有一个非常简单的问题.我需要在我的绘图上有第二个x轴,我希望这个轴有一定数量的抽搐,对应于第一个轴的某个位置.

我们来试试吧.在这里,我正在绘制暗物质质量作为扩展因子的函数,定义为1 /(1 + z),范围从0到1.

semilogy(1/(1+z),mass_acc_massive,'-',label='DM')
xlim(0,1)
ylim(1e8,5e12)
Run Code Online (Sandbox Code Playgroud)

我想在我的图的顶部有另一个x轴,显示扩展因子的某些值的相应z.那可能吗?如果是的话,我怎么能有xtics斧头

python matplotlib

73
推荐指数
5
解决办法
11万
查看次数

fread如何真正起作用?

声明fread如下:

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
Run Code Online (Sandbox Code Playgroud)

问题是:两个这样的调用的阅读性能是否存在差异fread:

char a[1000];
Run Code Online (Sandbox Code Playgroud)
  1. fread(a, 1, 1000, stdin);
  2. fread(a, 1000, 1, stdin);

它会读取1000字节一次,每次?

c fread

72
推荐指数
4
解决办法
7万
查看次数

解释R中的quantile()函数

我整天被R分位数函数迷惑了.

我有一个关于分位数如何工作的直观概念,以及统计数据中的MS,但男孩哦,男孩,它的文档让我很困惑.

来自文档:

Q [i](p)=(1 - gamma)x [j] + gamma x [j + 1],

我到目前为止还在用它.对于类型i分位数,它是x [j]和x [j + 1]之间的插值,基于一些神秘的常数伽玛

其中1 <= i <= 9,(jm)/ n <= p <(j-m + 1)/ n,x [j]是第j阶统计量,n是样本大小,m是常数确定的通过样本分位数类型.这里γ取决于g = np + mj的小数部分.

那么,如何计算j?M&

对于连续样本分位数类型(4到9),样本分位数可以通过第k阶统计量和p(k)之间的线性插值获得:

p(k)=(k-alpha)/(n-alpha-beta + 1),其中α和β是由类型确定的常数.此外,m =α+ p(1-α-β),γ= g.

现在我真的迷路了.p,之前是一个常数,现在显然是一个函数.

所以对于Type 7分位数,默认...

输入7

p(k)=(k-1)/(n-1).在这种情况下,p(k)=模式[F(x [k])].这是由S.使用的.

有人想帮帮我吗?特别是我对P的是一个功能和常数,究竟发生了什么符号糊涂是,现在来计算j表示一些特殊的p.

我希望根据这里的答案,我们可以提交一些修改后的文档,更好地解释这里发生了什么.

quantile.R源代码 或类型:quantile.default

math statistics r

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

如何在Linux中使用R增加列数

这可能看起来很卑鄙,但它会影响我的工作效率.我在Linux上使用R终端模式.与Windows IDE不同,Linux将列数限制为80,因此更难以检查数据集.有没有办法设置最大列数?

r

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

可以在Python输入上显示编辑的默认值吗?

python是否可以接受这样的输入:

Folder name: Download

但是,用户不是键入"下载",而是将其作为初始值.如果用户想要将其编辑为"下载",他只需要添加's'并按Enter键.

使用正常输入命令:

folder=input('Folder name: ')
Run Code Online (Sandbox Code Playgroud)

我能得到的只是一个空白提示:

Folder name:

有没有一种简单的方法可以做到这一点,我错过了?

python input

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