小编cur*_*ous的帖子

如何使用扭曲的python api将额外的参数传递给回调寄存器函数?

我使用扭曲的API有以下python代码.

def function(self,filename):    
    def results(result):
       //do something
    for i in range(int(numbers)) :
        name = something that has to do with the value of i         
        df = function_which_returns_a defer(name)
        df.addCallback(results)
Run Code Online (Sandbox Code Playgroud)

它使用Twisted API.我想要实现的是将回调函数(结果)传递给每次迭代中构造的名称的值,而不改变functions_which_returns_a defer()函数的内容以及延迟对象.在functions_which_returns_a deffer的每个结果中,应该将名称的值传递给results()以对此做一些事情.即:在执行到达结果函数的第一次迭代时,我需要函数在i = 0时保持deffered对象的结果以及name的值,然后当i = 1时,deferred对象将以值传递名称等等.所以我每次都需要使用名称变量alond和name变量调用defer对象的结果.当我尝试直接使用nameinside results()的值时,它始终保持最后一次迭代的值,这是理由,因为function_which_returns_a defer(name)没有返回.

python twisted

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

为什么我在套接字中收到一个字符串,直到python中的\n换行符转义序列为止?

它应该从一个tcp套接字接收一个2行字符串但实际上我只接收字符串直到新行.

     socket = socket(AF_INET,SOCK_STREAM)
     socket.connect((ip,port))
     data = socket.recv(1024)
     print "%s" % data
Run Code Online (Sandbox Code Playgroud)

如果现在调用接收函数它将在断行后接收字符串的第二部分.这不是我想要的事实.它应该从第一次调用返回整个字符串.当我使用nc连接到服务器时,我通常在连接开始时收到字符串.为什么会发生这种情况?

python sockets

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

是否有更优雅的pythonic方式表达以下condional表达式?

如果有的话,我想为下面的分支更加pythonic方式:

if a<b:
   a.append('value')
elif a==b:
   b.append('value')
else:
   do nothing
Run Code Online (Sandbox Code Playgroud)

那有三元运算符吗?

python

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

如何以递归方式从mercurial跟踪系统中删除文件夹

我有一个像下面这样的工作目录结构:

mercurial_working_dir:

  • PROJECT1
  • 项目2
  • 项目3

在每个项目文件夹下都有一些常见的文件夹,我想从mercurial.eg中删除:我不希望在/ metadata文件夹下跟踪任何文件,这在3个项目中很常见.据我所知,我应该使用hg remove -Af命令和指定文件.有没有办法在命令中定义常规exps,以递归"删除"放置在元数据文件夹下的任何文件的当前版本我的所有项目?

mercurial

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

特定于平台的依赖性蔓延到Eclipse插件中

我已经使用Eclipse EMF和GMF框架实现了一个图形编辑器.我完成项目后,我意识到,这个插件显示依赖于一些特定的OS-plugins.ie(未明确由我添加的): ,.org.eclipse.ui.win32 org.eclipse.swt.win32.win32.x86每当我试图在我的更新站点绕过这种依赖时,插件的安装过程出了问题.

因此,在*nix环境甚至win64机器上运行我的插件是不可能的.这对我来说似乎是一个非常重的约束依赖.我是以错误的方式做某事吗?或者除了在每个不同的操作系统上从头开始构建项目之外,没有其他方法可以构建跨平台的Eclipse插件吗?

eclipse eclipse-plugin

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

当我覆盖易受攻击程序的ret地址时,为什么我会"找不到当前函数的界限"?

我想利用基于堆栈的缓冲区溢出来进行教育.

有一个典型的函数,使用main中的参数调用,该函数作为程序的输入提供给保存参数的本地缓冲区.如果有这样的输入nops+shellcode+address_shellcode,我会利用它.

在使用gdb调试之后,我找到了shell代码的地址,因为它将作为参数传递,并且在strcpy我检查堆栈之后,$ebp+8哪个是返回地址已成功用shell代码的地址覆盖.所以我有我想要的东西.但是当我向前推进执行时,我得到了:

->shellcode_address in ?? ()
Run Code Online (Sandbox Code Playgroud)

然后

Cannot find bound of current function
Run Code Online (Sandbox Code Playgroud)

返回地址具有我想要的值.有什么想法发生了什么?

此外,当我执行它时,我遇到了分段错误,我已经编译了它-g -fno-stack-protector.为什么?

c stack buffer-overflow shellcode

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

使用jQuery.load加载后,如何使用MathJax格式化html?

我正在使用jQuery.load加载一个新页面.然而,内容正在以某种方式被奇怪地对待.在原始页面上,我有一些代码用MathJax格式化乳胶命令:

<script type="text/x-mathjax-config"> MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
</script>
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
Run Code Online (Sandbox Code Playgroud)

这适用于原始文件.但是,当我点击我的链接并在页面中插入更多HTML时:

<script>
  $(document).ready(function(){
    $("#link").click(function(){
      $("#myDiv").load("test.html");
    });
  });
</script>
Run Code Online (Sandbox Code Playgroud)

现在,特殊字符不是由MathJax格式化的,只是按原样显示.

html javascript jquery mathjax

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

浮点数末尾的python中后缀e + number的含义是什么?

random.uniform(1,2**100)用来生产范围内的随机浮点数(0,2**100).一些结果是:

>>> random.uniform(1,2**100)
5.9798650563331964e+29
>>> random.uniform(1,2**100)
8.439133849811236e+29
>>> random.uniform(1,2**100)
1.1367823572756921e+30
>>> random.uniform(1,2**100)
6.467828850316163e+29
>>> random.uniform(1,2**100)
6.114089228136624e+29
>>> random.uniform(1,2**100)
5.8262139039159224e+29
Run Code Online (Sandbox Code Playgroud)

我无法e+29在每个数字的末尾得到解释.

python python-2.7

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

应用函数后,从两个列表中创建一个字典

我有两个元组列表

keys = [(0,1), (2,1)]
values = [('a','b'), ('c','d')]
Run Code Online (Sandbox Code Playgroud)

我想创建一个dict将函数f1应用于每个字典的字典

dict.keys[i] = keys[i][0], keys[i][i]: f1(keys[i][0],keys[i][1])
Run Code Online (Sandbox Code Playgroud)

而对于字典的价值,我想成为元组

dict.values[i] = (f2(values[i][0]), f2(values[i][1]))
Run Code Online (Sandbox Code Playgroud)

以pythonic方式一次通过的最有效方法是什么?

python

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

如何提高Python中大数模乘法的效率

我正在使用python3而没有任何定制的库用于一些简单的算术.主导计算效率的操作是许多2048位值的乘法:

length=len(array)
res=1
for x in range(length):
       res=(res*int(array[x]))
       ret=res%n2
Run Code Online (Sandbox Code Playgroud)

为了给你一个洞察力,需要大约3940秒来使10000乘法模数成为每个乘法的数字:

Intel Core i5 CPU M 560 @ 2.67GHz × 4 with 8GB of memory, running Ubuntu 12.04 32bit 机.

使用像gmpy2这样的库来增强它是否有意义或者没有任何优势?

python python-3.x gmpy

2
推荐指数
1
解决办法
681
查看次数