小编Aze*_*rah的帖子

在Python中将变量直接分配给函数

请考虑以下代码:

def apples():
    print(apples.applecount)
    apples.applecount += 1

apples.applecount = 0
apples()
>>> 0
apples()
>>> 1
# etc
Run Code Online (Sandbox Code Playgroud)

这是一个好主意,坏主意还是我应该摧毁自己?如果你想知道为什么我会想要这个,我有一个函数每4秒重复一次,使用win32com.client.Dispatch()它使用windows COM连接到一个应用程序.我认为没有必要每4秒重新创建一次链接.我当然可以使用全局变量,但我想知道这是否也是一个有效的方法.

python variables function

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

在书签中使用本地存储

我非常喜欢使用带有小脚本的书签。

例如,我在 Reddit 上编辑了这篇文章中的注释编辑脚本,以通过本地存储自动保存和加载最后一条注释。

...

window.addEventListener("load", function () {
    div.innerHTML = localStorage.getItem("note");
}, false);
document.body.addEventListener("keyup", debounce(function () {
     localStorage.setItem("note", div.innerHTML);
}, 760));
...
Run Code Online (Sandbox Code Playgroud)

如果我将 html 文档作为存储在硬盘上的实际 html 文档打开,它运行得很好。但是,当我使用在代码(缩小)版本中粘贴的 URL 栏运行它时data: text/html, ...,出现NS_ERROR_NOT_AVAILABLE:错误。这是有道理的,因为本地存储是域绑定的。

有没有办法让本地存储与书签一起使用?

完整的注释代码可在此处找到,请注意,如果您将其保存在本地硬盘上,则此代码将起作用。因此,您可以为其添加书签并根据需要使用它。

html javascript bookmarklet

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

在Linux上的python中侦听全局键组合

我刚刚写了一个小程序,每隔几分钟从flickr下载一个新壁纸.

现在我想添加"喜欢"壁纸的功能,所以它会比非喜欢或不喜欢的壁纸更频繁地出现.

我想为这个功能分配一个全局键盘快捷键.

例如:如果按ctrl + 7,它将在Python中执行某种"喜欢"的功能.

是否有任何库(在JavaScript中,例如有一个库,我可以在其中定义快捷方式shortcut("ctrl-b", someFunction);)

否则,我该怎么做呢?我见过这个类似的问题,但它已经过时了.

python linux keyboard-shortcuts hotkeys

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

GNU argp“参数太少”

我的程序应该采用两个必需参数和三个可选参数,如下所示

ATE <input file> <output file> [--threads] [--bass] [--treble]

(注意,我还没有弄清楚如何获取<required>参数,因此输入和输出文件在代码中定义为 -i input_file 和 -o output_file)

我正在使用 GNU 库 argp 来解析命令行参数,我的文件基于第三个示例

我使用以下命令运行我的程序

$ ./ATE -i input_file.pcm -o output_file.pcm
Too few arguments!
Usage: ATE [OPTION...]
            -p AMOUNT_OF_THREADS -b BASS_INTENSITY -t TREBLE_INTENSITY
            input_file.pcm output_file.pcm
Try `ATE --help' or `ATE --usage' for more information.
threads: 2, bass: 4, treble: 4
opening file input.pcm
RUNNING!
done, saving to out.pcm
Run Code Online (Sandbox Code Playgroud)

运行我的程序时,尽管 argp 成功解析了输入和输出选项,但我得到“参数太少”,正如您在输出中看到的那样。

打印出 parse_opt 中的参数数量,cout << state->arg_num << endl;每次调用都会给我 …

c++ gnu glibc

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

使用带有参数的 subprocess.call

与这个问题相关

原则上的问题是相同的,我有一个 subprocess.system 调用

...
EDITOR = os.environ.get('EDITOR', 'vim')
subprocess.call([EDITOR, tf.name])
...
Run Code Online (Sandbox Code Playgroud)

EDITOR环境变量在哪里$EDITORtf.name只是一个文件名。

但是,sublime text建议将设置为“$EDITOR使export EDITOR='subl -w'我的通话看起来像这样”:

subprocess.call(['subl -w', "somefilename"])
Run Code Online (Sandbox Code Playgroud)

它失败了,如下所示:

raceback (most recent call last):
  File "/usr/bin/note", line 65, in <module>
    storage["notes"][args.name] = writeNote(args.name, storage)
  File "/usr/bin/note", line 54, in writeNote
    subprocess.call([EDITOR, tf.name])
  File "/usr/lib/python3.5/subprocess.py", line 557, in call
    with Popen(*popenargs, **kwargs) as p:
  File "/usr/lib/python3.5/subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.5/subprocess.py", line 1541, in …
Run Code Online (Sandbox Code Playgroud)

python command-line environment-variables sublimetext3

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

T是常数,不能用作变量

我正在为编码挑战编写常见的lisp代码,这是一个rpg-esque拼图,你需要计算战士所造成的总矫枉过度伤害.因为我对普通的lisp很新,我的代码可能非常糟糕.除非与错误相关,否则请不要发布常见的常见lisp编码提示.我计划在错误修复后将此代码发布到codereview

代码运行正常,直到内部tick(在底部)条件when (> overkill-damage 0)为真.我正在使用GNU Clisp 2.49来运行此代码.

(defun timer (initialization-time interval)
    (list :init initialization-time :interval interval :ready nil :time-passed 0))

(defun tick-timer (timer)
    (let ((newtime (1+ (getf timer :time-passed))))
        (when (and (not (getf timer :ready)) (>= newtime (getf timer :init)))
            (setf (getf timer :ready) t))
        (setf (getf timer :time-passed) newtime)))

(defun timer-ready? (timer)
    (and
      (getf timer :ready)
      (= 0 (mod (getf timer :time-passed) (getf timer :interval)))))

(defun weapon (damage timer)
    (list :damage damage :timer timer)) …
Run Code Online (Sandbox Code Playgroud)

debugging common-lisp

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

这里发生了什么?Python for循环有多个in

我试图同时循环遍历两个列表,当它们的大小不同时没有意识到太多的麻烦.

然而,虽然在IDLE中摆弄,我发现这非常奇怪的输出.

这是Python 3.3.2

>>> for i in [1,2,3], j in [4,5,6]:
        print(i, j)


[1, 2, 3] 5
True 5
Run Code Online (Sandbox Code Playgroud)

关于这一点很少,True有时会变为False,如下所示:

for i in [77,2,3], j in [588,7,6]:
    print(i, j)

[77, 2, 3] 5
False 5
Run Code Online (Sandbox Code Playgroud)

并且5总是保持5.

这适用于两个语句,但有三个语句,它给了我这个:

>>> for i in [1,2,3], j in [4,5,6], k in [7,8,9]:
        print(i, j, k)


Traceback (most recent call last):
  File "<pyshell#53>", line 1, in <module>
    for i in [1,2,3], j in [4,5,6], k in [7,8,9]:
NameError: name 'k' is not defined
Run Code Online (Sandbox Code Playgroud)

对我来说,这看起来很奇怪. …

python for-loop

0
推荐指数
2
解决办法
78
查看次数