小编iko*_*tia的帖子

简而言之,解释堆栈框架的概念

看来我在编程语言设计中得到了调用栈的概念.但我找不到(可能,我只是不够努力搜索)任何堆栈帧的正确解释.

所以我想请一个人用几句话向我解释.

callstack

181
推荐指数
5
解决办法
8万
查看次数

MySQL BOOL和BOOLEAN列数据类型之间有什么区别?

我正在使用MySQL版本5.1.49-1ubuntu8.1.它允许我定义两种不同数据类型的列:BOOLBOOLEAN.这两种类型有什么区别?

mysql sqldatatypes

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

有没有办法将__len__或__eq__等方法实现为classmethods?

__len__(self)在Python中实现方法非常容易,因此它可以处理这样的len(inst)调用:

class A(object):

  def __len__(self):
    return 7

a = A()
len(a) # gives us 7
Run Code Online (Sandbox Code Playgroud)

而且有很多相似的方法,你可以定义(__eq__,__str__,__repr__等).我知道Python类也是对象.

我的问题:我可以以某种方式定义,例如,__len__以便以下工作:

len(A) # makes sense and gives some predictable result
Run Code Online (Sandbox Code Playgroud)

python class

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

如何将我的所有django应用程序保存在特定文件夹中

我有一个Django项目,让我们说"project1".应用程序的典型文件夹结构是:

/project1/
         /app1/
         /app2/
         ...
         __init__.py
         manage.py
         settings.py
         urls.py
Run Code Online (Sandbox Code Playgroud)

如果我想将所有应用程序保存在某个单独的文件夹中,例如'apps',我该怎么办?所以该结构应如下所示:

/project/
         apps/
              app1/
              app2/
              ...
         __init__.py
         manage.py
         settings.py
         urls.py
Run Code Online (Sandbox Code Playgroud)

python django django-apps

35
推荐指数
4
解决办法
2万
查看次数

如何模拟不存在的模块的层次结构?

让我们假设我们有一个仅在生产阶段存在的模块系统.在测试时,这些模块不存在.但我仍然想为使用这些模块的代码编写测试.我们还假设我知道如何从这些模块中模拟所有必需的对象.问题是:如何方便地将模块存根添加到当前层次结构中?

这是一个小例子.我想测试的功能放在一个名为的文件中actual.py:

actual.py:


def coolfunc():
  from level1.level2.level3_1 import thing1
  from level1.level2.level3_2 import thing2
  do_something(thing1)
  do_something_else(thing2)
Run Code Online (Sandbox Code Playgroud)

在我的测试套件中,我已经拥有了我需要的一切:我拥有thing1_mockthing2_mock.我也有测试功能.我需要的是添加level1.level2...到当前模块系统中.像这样:

tests.py

import sys
import actual

class SomeTestCase(TestCase):
  thing1_mock = mock1()
  thing2_mock = mock2()

  def setUp(self):
    sys.modules['level1'] = what should I do here?

  @patch('level1.level2.level3_1.thing1', thing1_mock)
  @patch('level1.level2.level3_1.thing1', thing2_mock)
  def test_some_case(self):
    actual.coolfunc()
Run Code Online (Sandbox Code Playgroud)

我知道我可以替换sys.modules['level1']包含另一个对象的对象,依此类推.但对我来说似乎有很多代码.我认为必须有更简单,更漂亮的解决方案.我找不到它.

python mocking python-mock

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

如何在Python中调用特定的基类方法?

比方说,我有以下两个类:

class A(object):
    def __init__(self, i):
        self.i = i
class B(object):
    def __init__(self, j):
        self.j = j

class C(A, B):
    def __init__(self):
        super(C, self).__init__(self, 4)
c = C()
Run Code Online (Sandbox Code Playgroud)

c只会设置i属性,而不是j.我应该写什么来设置两个属性/只有j属性?

python

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

两个Python导入之间有什么区别

Python 两种从模块导入内容的方法:

from mymodule import ClassOne, ClassTwo, ClassThree
Run Code Online (Sandbox Code Playgroud)

from mymodule import (ClassOne, ClassTwo, ClassThree)
Run Code Online (Sandbox Code Playgroud)

我在Python的文档中找不到任何注释(可能,我只是没有那么努力).我想知道这两种导入方式之间的显着差异.

python import

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

dlang默认是否安装了一些信号处理程序

我用D写的无限循环程序:

$ cat dprog.d 
import std.stdio;
import core.thread;

void main()
{
  while(1){
    Thread.sleep(dur!("seconds")(1));
  };
}
Run Code Online (Sandbox Code Playgroud)

当我在Linux(Ubuntu)上构建并运行该程序时,kill -10 $PID对它没有任何影响.实际上,它默认会捕获一堆信号:

$ cat /proc/$PID/status | grep SigCgt
SigCgt: 0000000180000a00
Run Code Online (Sandbox Code Playgroud)

信号10是SIGUSR1信号,其默认动作是过程终止(咨询man 7 signal).

等效程序,C语言编写的关于终止kill -10 $PIDcat /proc/$PID/status | grep SigCgtSigCgt: 0000000000000000.

用Rust编写的等效程序也会终止kill -10 $PID,但它cat /proc/$PID/status | grep SigCgtSigCgt: 0000000180000440.

我的问题是:D(Rust)编译器是否注册了默认的信号处理程序?如果是,为什么?此外,这是在某处记录的吗?

linux signals d

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