小编Dav*_*ver的帖子

Python 2.5 Windows二进制文件?

我需要测试使用Python 2.5在Windows上发生的问题,但是发布页面没有链接到2.5的二进制文件.

有什么地方我可以找到副本吗?

python windows python-2.5

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

vim拼写检查:忽略大写单词?

我如何告诉Vim的拼写检查器忽略具有主要资本的单词?

例如,MyWidget标记为拼写错误令人讨厌.

vim

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

Python:编写接受参数的装饰器的快捷方式?

Python标准库是否有用于编写接受参数的装饰器的快捷方式?

例如,如果我想写一个装饰器,如with_timeout(timeout):

@with_timeout(10.0)
def cook_eggs(eggs):
    while not eggs.are_done():
        eggs.cook()
Run Code Online (Sandbox Code Playgroud)

我必须写一些类似的东西:

def with_timeout(timeout):
    _func = [None]
    def with_timeout_helper(*args, **kwargs):
        with Timeout(timeout):
            return _func[0](*args, **kwargs)
    def with_timeout_return(f):
        return functools.wraps(f)(with_timeout_helper)
    return with_timeout_return
Run Code Online (Sandbox Code Playgroud)

但那非常冗长.是否有一个快捷方式使得接受参数的装饰器更容易编写?

注意:我意识到也可以使用三个嵌套函数来实现带参数的装饰器......但这也感觉有点不理想.

例如,可能类似于@decorator_with_arguments函数:

@decorator_with_arguments
def timeout(f, timeout):
    @functools.wraps(f)
    def timeout_helper(*args, **kwargs):
        with Timeout(timeout):
            return f(*args, **kwargs)
    return timeout_helper
Run Code Online (Sandbox Code Playgroud)

python decorator

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

Angular 2:如何检测组件上输入属性的属性更改?

我有一个Angular 2 Controller,它看起来像这样:

@Component({
  selector: 'my-component',
  template: '<div>The value is: {{ value }}</div>',
})
class MyComponent implements OnInit {
  @Input()
  value: string;

  @Output
  valueChange = new EventEmitter<number>();

  ngOnInit() {
    this.valueChange.subscribe(value => {
      console.log('new value:', value); // <-- does not get triggered
    });
  }
}
Run Code Online (Sandbox Code Playgroud)

但是当value从模板绑定更改的值时:

<my-component [value]="someValue" /> <!-- valueChange not triggered! -->
Run Code Online (Sandbox Code Playgroud)

valueChange事件不会被触发的话,即使模板正确更新并显示新的价值,该组件并不知道它已经改变了.

如何检测控制器上的输入属性何时更改?

angular

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

Eclipse中的"哑"文本完成?

在Eclipse中有没有办法让"哑"字完成,类似于Vim中的ctrl + p?

例如,我经常写一个函数调用:

x = getMeAnXPlease();
Run Code Online (Sandbox Code Playgroud)

然后进去写定义:

function getMe...
Run Code Online (Sandbox Code Playgroud)

此时,在Vim中,我点击了ctrl + p,这将完成'getMe'到'getMeAnXPlease'.

Eclipse有类似的东西吗?

编辑:我知道ctrl + space执行上下文相关的完成,ctrl-1是神奇的"修复此行"键...但是有些情况我只想要上下文不敏感...这似乎是提供的通过'Word Completion'命令.

编辑:下一个问题:是否可以执行上下文不敏感的行完成(类似于Vim中的cx cl)?也就是说,使用类似的行完成当前行:

doSomeThing(1, 2, 3, 4);
doSome <c-x c-l> -- inserts the rest of the 'doSomeThing(1, 2, 3, 4);' line
Run Code Online (Sandbox Code Playgroud)

eclipse

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

Mercurial diff:忽略尾随空格?

我处在一个非常不幸的环境中,在一个几乎不担心被称为"尾随空白"的深层邪恶的环境中工作......但是,唉,开明的Mercurial坚持警告我,通过差异中的红色亮点,代码我将检查包含这个不圣洁的东西.

那么,有没有办法告诉Mercurial忽略差异中的尾随空格?

我已经尝试了所有明显的--ignore-*命令,它们似乎什么都不做.

谢谢!

diff mercurial whitespace

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

将逗号放在Javascript整数中

所以我在Javascript中有一个值:

var val = Entry.val;
Run Code Online (Sandbox Code Playgroud)

这个值的一个例子是277385.我如何在Javascript中将此数字转换277,385为任何数字,以便在正确的位置使用逗号?

javascript localization

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

很好地理解CSRF的棘手问题

我和我的朋友喝啤酒.

来自维基百科:

在所有表单提交和副作用URL中要求使用特定于用户的秘密令牌可防止CSRF; 攻击者的网站无法在其提交的内容中加入正确的令牌

atacker可以间接使用浏览器cookie,但他不能直接使用它们!这就是为什么他不能使用cookie将cookie放入链接document.write()

让我们看一下如何生成注销链接.这是安全的方式吗?这个GET请求可以伪造吗?

function logout(){
     echo '<a href="?action=logout&sid='.htmlspecialchars($_COOKIE['sid']).'>Logout</a>';
}
Run Code Online (Sandbox Code Playgroud)

sid是为每个会话生成的会话ID

在服务器端,执行以下检查:

$_GET['sid']==$_COOKIE['sid']
Run Code Online (Sandbox Code Playgroud)

security xss

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

Celery:查询待处理任务的标准方法?

是否存在基于某些字段查询待处理任务的标准/后端无关方法?

例如,我有一个任务需要在"最后一次用户交互"之后运行一次,我想实现它类似于:

def user_changed_content():
    task = find_task(name="handle_content_change")
    if task is None:
        task = queue_task("handle_content_change")
    task.set_eta(datetime.now() + timedelta(minutes=5))
    task.save()
Run Code Online (Sandbox Code Playgroud)

或者直接挂接到存储后端更简单?

python celery

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

当所有权正确时,为什么`killpg`会返回"不允许"?

我有一些代码fork(),setsid()在孩子中调用,并开始一些处理.如果任何一个孩子退出(waitpid(-1, 0)),我会杀死所有子进程组:

child_pids = []
for child_func in child_functions:
    pid = fork()
    if pid == 0:
        setsid()
        child_func()
        exit()
    else:
        child_pids.append(pid)

waitpid(-1, 0)
for child_pid in child_pids:
    try:
        killpg(child_pid, SIGTERM)
    except OSError as e:
        if e.errno != 3: # 3 == no such process
            print "Error killing %s: %s" %(child_pid, e)
Run Code Online (Sandbox Code Playgroud)

但是,有时呼叫killpg将因"不允许操作"而失败:

Error killing 22841: [Errno 1] Operation not permitted

为什么会发生这种情况?

一个完整的,有效的例子:

from signal import SIGTERM
from sys import exit
from time …

python unix macos bsd

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