小编Gab*_*ira的帖子

内部类修改拥有类的属性

我有这样的代码:

class Foo() {
    time_to_play = 0
    class Bar() {
        void change_player() {
            //I need something HERE
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

我需要time_to_play从类中更改属性Foo,但是在方法内部进行此更改change_player(),即在类下Bar.

我不能在课堂Bar外宣布课程Foo,并做一个'扩展',并打电话给超级.......,因为在我的情况下它打破了OO.

另外,我不想做time_to_play一个静态变量,调用Foo.time_to_play

我怎么能这样做?

java class inner-classes

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

Bash:最后(尝试,除外)例外

我想在bash脚本的末尾执行一些命令,即使用户按CTRL + C取消其执行.

我知道我可以从另一种编程语言(例如Python)中运行bash脚本,这样我就可以使用'finally'(try-finally)块来执行一些代码.

但是知道StackOverflow是一个交换神话般思想的中心,我问是否有办法在我的bash脚本中做我想做的事情.

那么,想法?

编辑:

我想要的是杀死我的bash中打开的每个进程,即selenium和Xvfb proccesses.

我试着写这个代码:

 trap "selenium_pids=$(ps ux | awk '/selenium/ && !/awk/ {print $2}');for pid in $selenium_pids; do kill -9 $pid;done; xvfb_pids=$(ps ux | awk '/Xvfb/ && !/awk/ {print $2}'); for pid in $xvfb_pids; do kill -9 $pid; done" EXIT
Run Code Online (Sandbox Code Playgroud)

但这迫使我多次按"CTRL + C",在我的脚本内部每次运行子进程,如:

Testing nsi.bd.helpcenter ...^C:  --  Total time: 0min 0seg
Testing nsi.bibliography ...^C:  --  Total time: 0min 0seg
Testing nsi.digitallibrary ...^C:  --  Total time: 0min 0seg
Testing nsi.digitallibraryinstaller ...^C:  --  Total time: 0min …
Run Code Online (Sandbox Code Playgroud)

bash finally execution

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

Python:使用另一个列表顺序对列表进行排序,具有不同的长度,并且没有"已排序"

我将解释这一点:
我在一个我不能使用python内置函数的环境中(比如'sorted','set'),不能声明方法,不能创造条件(if) ,并且不能制作循环,除了:

  • 可以调用方法(但每次只调用一个,并保存另一个变量的返回值

    foo python:item.sort(); #foo变量获取item.sort()返回的值

    bar python:foo.index(x);

  • 并且可以做列表理解

    [item ['bla'] for foo中的项目]

......我认为这不会对这个问题有所帮助

我有一个'correct_order'列表,其中包含以下值:

correct_order = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)

我有一个'messed_order'列表,其中包含以下值:

messed_order = [55, 1, 44, 3, 66, 5, 4, 7, 2, 9, 0, 10, 6, 8]
Run Code Online (Sandbox Code Playgroud)

好吧,我必须重新排序'messed_order'列表,使用'correct_order'索引作为基础.未包括在correct_order中的其余项目的顺序无关紧要.

这样的东西会解决(再次,除了我不能使用循环):

for item in correct_order:
    messed_order[messed_order.index(item)], messed_order[correct_order.index(item)] = messed_order[correct_order.index(item)], messed_order[messed_order.index(item)]
Run Code Online (Sandbox Code Playgroud)

并且会导致我想要的'ordered_list':

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 55, 66, 44]
Run Code Online (Sandbox Code Playgroud)

那么,我该怎么做呢?

对于那些了解zope/plone的人,我在皮肤页面(.pt)上,没有辅助python脚本(我认为这对于皮肤页面是不可能的,仅适用于浏览器页面.如果是,告诉我如何和我会这样做.

python sorting plone list

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

Javascript:如何更改函数动态调用params?

我从jquery的json调用中收到一些'body'内容,在那里我可以通过执行以下方式获取返回的唯一javascript元素:

script_element = $(data.body)[1]
Run Code Online (Sandbox Code Playgroud)

这相当于:

<script type=?"text/?javascript">?
    updater('foo', 'bar', {}, '0', constant='');
</script>?
Run Code Online (Sandbox Code Playgroud)

所以,typeof script_element回报"object"

而且,如果我跑script_element.innerText,我可以得到:

updater('foo', 'bar', {}, '0', constant='');
Run Code Online (Sandbox Code Playgroud)

收到这个脚本之后,我现在正在做的就是运行eval它,但是搜索我无法找到运行eval更改函数调用参数的方法.

我正在尝试做的是更改third调用的参数,在这种情况下{},可以根据json调用的返回而改变,所以我不能只搜索{}.

我也可以这样做script_element.text.split(',')[2],并在运行中更改此文本,但我认为应该有更好的方法来做到这一点.

我不知道javascript是否可以识别和处理"未来的方法调用",但仍然认为应该有更好的方法.

任何的想法?

javascript jquery method-call

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

Python - 如何捕获方法内部的异常

我想知道是否有办法在被调用的方法中捕获异常.

例:

def foo(value):
    print value

foo(x)
Run Code Online (Sandbox Code Playgroud)

这将抛出NameError异常,因为未声明x.我想在foo方法中捕获这个NameError异常.有办法吗?

python exception

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