小编The*_*eer的帖子

Ipdb和方法文档

我必须分析一个外部API的方法,以及我通常如何编写一个测试脚本,或者找一个示例代码,做一个

ipdb.set_trace()
Run Code Online (Sandbox Code Playgroud)

我想在哪里试验,而不是看看当前可用的变量,对象及其方法.但是,当我想以Ipython提供的方式检查文档时

object.method?
Run Code Online (Sandbox Code Playgroud)

我明白了

*** SyntaxError: invalid syntax (<stdin>, line 1)
Run Code Online (Sandbox Code Playgroud)

如果我试试

help(object.method)
Run Code Online (Sandbox Code Playgroud)

它给

*** No help on (object.method)
Run Code Online (Sandbox Code Playgroud)

这是否意味着所选方法没有文档,或者我使用错误的方法调用它?

python ipython pdb

8
推荐指数
2
解决办法
1163
查看次数

数字化模拟信号

我有一组表示数字输出的CSV值.它是使用模拟示波器收集的,因此它不是一个完美的数字信号.我试图过滤掉数据以获得完美的数字信号来计算周期(可能会有所不同).我还想定义从这个过滤得到的最大误差.

像这样的东西:

在此输入图像描述

理念

应用数据阈值.这是一个伪代码:

for data_point_raw in data_array:
    if data_point_raw < 0.8: data_point_perfect = LOW
    if data_point_raw > 2  : data_point_perfect = HIGH

else:
    #area between thresholds
    if previous_data_point_perfect == Low : data_point_perfect = LOW
    if previous_data_point_perfect == HIGH: data_point_perfect = HIGH
Run Code Online (Sandbox Code Playgroud)

有两个问题困扰着我.

  1. 这似乎是数字信号处理中的常见问题,但是我还没有找到预定义的标准功能.这是一种执行过滤的好方法吗?
  2. 我怎样才能得到最大误差?

python signal-processing numpy

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

const导致不兼容的指针类型.为什么只有双指针?

这个问题已在这里得到解决.

建议的副本和当前给出的答案没有解决为什么首先给出的示例没有问题.主要是为什么没有推理:

" const int ** is a pointer to const int * 这与其他事情不同int*"

也适用于:

" const int * is a pointer to const int 这与其他事情不同int"


我从不同的角度接近它,希望得到另一种解释.

带有示例的代码.

#include <stdio.h>

void f_a (int const a){

    /*
     *  Can't do:
     *      a = 3;  //error: assignment of read-only parameter ‘a’
     *
     * Explanation: I can't change the value of a in the scope of the function due to the const
    */
    printf("%d\n", a); …
Run Code Online (Sandbox Code Playgroud)

c pointers const

8
推荐指数
2
解决办法
1270
查看次数

将模块中的所有类初始化为列表中的无名对象

有没有办法将所有类从python模块初始化为无名对象列表?

示例 我有一个模块rules,其中包含类Rule中的所有子类.因此,我确信他们都将实现一个方法,run()并且将具有name将在调用期间生成的属性__init__

我想有一个从这些类动态启动的对象列表.通过动态初始化,我的意思是它们不必明确命名.

问题是:

是否可以遍历模块中的所有类?

可以启动无名对象吗?

python oop

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

未定义的引用错误,但库中存在符号

我收到undefined reference以下示例的错误。我看到了很多与这个问题相关的问题,但相信我给出了一个剥离的、可重复的、概念性的例子,而不是其他问题中的具体问题,

dynlib.h:

void printMe_dyn();
Run Code Online (Sandbox Code Playgroud)

dynlib.c:

#include <stdio.h>
#include "dynlib.h"

void printMe_dyn() {
  printf("I am execuded from a dynamic lib");
}
Run Code Online (Sandbox Code Playgroud)

myapp.c:

#include <stdio.h>
#include "dynlib.h"

int main() 
{
    printMe_dyn();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

构建步骤:

gcc -Wall -fpic -c dynlib.c
gcc -shared -o libdynlib.so dynlib.o
gcc -Wall -L. -ldynlib myapp.c -o myapp
Run Code Online (Sandbox Code Playgroud)

错误:

/tmp/ccwb6Fnv.o: In function `main':
myapp.c:(.text+0xa): undefined reference to `printMe_dyn'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

证明该符号在库中:

nm libdynlib.so | grep printMe_dyn
00000000000006e0 T printMe_dyn
Run Code Online (Sandbox Code Playgroud)
  1. 我是否使用正确的编译器标志来构建动态库? …

c linker gcc

7
推荐指数
2
解决办法
3806
查看次数

pdb交互模式通过telnet和rdb

我正在调试嵌入式Linux主板上的python守护进程.我ssh到运行该程序的板上并进入调试器.鉴于这是我使用的是守护进程的过程rdb,从celery

#Install on the system
pip3 install celery

# Set in the code
from celery.contrib import rdb
rdb.set_trace()

# Connect to the debugger
telnet localhost 5899
Run Code Online (Sandbox Code Playgroud)

然而,在该届会议的tab重点不会导致自动完成如通常pdbup关键不经过历史滚动,但打印^[[A.

这些问题与缺少的readlinepython模块有关,但在这种特殊情况下,模块存在并可以导入.

python debugging telnet

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

什么是服务器异步响应?

我正在阅读关于实时网络的文章,我注意到了一句话allow Django to do async responses.我迄今所理解的是,通过使用Ajax在同一侧发出多个Http请求,可以在客户端上实现并行性,但对于服务器,这些只是分离的请求,每个请求都在自己的threas中处理.

我怎么看它起作用:

  1. 客户端发送两个请求
  2. 服务器接收它们并在其自己的线程中解决它们,并返回到客户端

什么是异步服务器的概念示例?

django asynchronous

6
推荐指数
1
解决办法
6404
查看次数

Numpy 2d和1d阵列到乳胶bmatrix

我正在寻找一种将numpy数组迁移到latex bmatrix的简洁方法.它应该适用于2d阵列和水平和垂直1d阵列.

A = array([[12, 5, 2],
           [20, 4, 8],
           [ 2, 4, 3],
           [ 7, 1,10]])

print A              #2d array
print A[0]           #horizontal array
print A[:,0, None]   #vertical array

array_to_bmatrix(A)
array_to_bmatrix(A[0])
array_to_bmatrix(A[:,0, None])
Run Code Online (Sandbox Code Playgroud)

日期:

[[12  5  2]
 [20  4  8]
 [ 2  4  3]
 [ 7  1 10]]

[12  5  2]

[[12]
 [20]
 [ 2]
 [ 7]]

\begin{bmatrix} 
 12.000 & 5.000 & 2.000 & \\
 20.000 & 4.000 & 8.000 & \\
 2.000 & 4.000 & 3.000 & …
Run Code Online (Sandbox Code Playgroud)

python latex numpy

6
推荐指数
2
解决办法
5085
查看次数

在Django模型中获取应用程序名称

以下是Django应用程序的模型.让应用程序称为MyApp.这个想法是让每个应用程序都在MEDIA_ROOT下拥有它的文件夹.

class MyModel(models.Model):
    .... #Other fields
    datoteka = models.FileField(upload_to = 'MyApp',null = True)
Run Code Online (Sandbox Code Playgroud)

有没有办法从某个地方获取应用程序的名称并删除硬编码MyApp.

是一个类似的问题,但我无法访问模型中的请求对象.

django django-models

6
推荐指数
1
解决办法
5349
查看次数

Pythonic 方式编写修改列表的函数?

在Python中,函数参数是通过对象引用传递的。这意味着修改列表的最简单代码将修改对象本身。

a = [1,2,3]

def remove_one(b):
    b.remove(1)

remove_one(a)
print(a)
Run Code Online (Sandbox Code Playgroud)

该方法remove_one不返回任何内容。如果这是一个公共方法,则必须假设它将修改对象并且在方法内不是线程安全的。


第二种方法是像这样构建代码片段:

a = [1,2,3]

def remove_one(b):
    b.remove(1)
    return(b)

print(remove_one(a[:]))
Run Code Online (Sandbox Code Playgroud)

这里 a 的内容没有被修改,并返回一个新列表。这给方法调用者带来了很多责任。


话又说回来list comprehensions,修改列表内容的Pythonic方法总是创建一个新对象。

a = [1,2,3]

def remove_one(b):
    b = [num for num in b if b!=1]
    return(b)

print(remove_one(a))
Run Code Online (Sandbox Code Playgroud)

我不清楚是否有一种“Pythonic”方式来做到这一点,所以我会做出一些假设来挑战:

  • 假设采用可变对象的函数会修改其内容会更安全
  • 列表推导式不直接修改对象是有原因的。我只是不知道
  • 编写使用列表推导式修改可变参数的函数的“Pythonic”方式尚不清楚

python

6
推荐指数
1
解决办法
913
查看次数