小编Fel*_*ipe的帖子

使用javascript设置按钮的值

我确信在看到答案之后我会感到愚蠢,但我仍然在网络上遇到史前代码,我不确定是否仍然适用.我的问题是"我如何使用javascript更改按钮的值(在表单内)?" 这就是我现在所拥有的:

function myFunc(form) {
    form.elements["submit-button"].value = "New<br>Text";
    "other stuff that actually works."
    return false;
}
Run Code Online (Sandbox Code Playgroud)

其次是

<form onSubmit="return myFunc(this);">
    <button name="submit-button">Original<br>Text</button>
</form>
Run Code Online (Sandbox Code Playgroud)

"实际工作的其他东西".实际上是有效的,所以我确定该函数被调用并且按钮被找到了.我似乎无法将"新
文本" 粘贴到按钮中!

非常感谢.

html javascript button

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

仅在node_modules中跳过库检查

有几个关于在错误输入中禁用错误​​的问题node_modules(例如,这个这个),但它们都涉及使用skipLibCheck编译器标志.

是否有其他解决此问题的方法(例如,使用includeexclude)?我有几个手写的.d.ts文件(更严格的类型比可在DefinitelyTyped),我想类型检查,所以类型检查对这些文件的批发禁止是没有吸引力.

node-modules typescript tsconfig

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

正确的单元测试方法__repr__与dict

说我有一个课程:

class MyClass:
    def __init__(self, **kwargs):
        self.kwargs = kwargs
    def __repr__(self):
        return "<%s: %r>" % (self.__class__.__name__, self.kwargs)
Run Code Online (Sandbox Code Playgroud)

__repr__ 对核心功能来说并不重要,但偶尔会调用日志记录,显示在堆栈跟踪中等等,所以我想对它进行单元测试.

问题类似于使用doctest时遇到的问题,但我宁愿在测试函数中保留任何复杂性(如排序)而不是__repr__.

现在我正在使用evalrerepr()通话中提取字典,但我想检查是否有eval人们使用的非替代品.

def test_repr():
    retval = repr(MyClass(a=1, b=2, c=3))
    match = re.match("^<MyClass: ({.*})>\Z", retval)
    assert match
    assert eval(match.group(1)) == dict(a=1, b=2, c=3)
Run Code Online (Sandbox Code Playgroud)

python unit-testing eval

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

Unittest Tkinter文件对话框

有什么方法可以自动执行tkFileDialog选择unittest吗?以下是tkinter我的应用程序中的唯一用法:

root = Tkinter.Tk()
types = [('Comma Separated Values', '.csv'), ('All Files', '*')]
filename = tkFileDialog.askopenfilename(parent=root,
                                        filetypes=types)
root.destroy()
Run Code Online (Sandbox Code Playgroud)

编辑:我没有提到这部分代码被困在我控制范围之外的类的方法调用中。


背景

我已经构建了一个本地应用程序,该应用程序在http服务器上创建了一个HTTP服务器,localhost并在Web浏览器中使用HTML / CSS / JS运行其GUI。由于浏览器的限制,我无法使用内置文件对话框,因此必须通过Python发送此请求。我希望它可以在带有内置Python 2.5的OSX上运行。我不是很熟悉Tcl/Tk

尝试#1

如果我可以使用基础小部件,则可以生成此问题中的点击。但是,从对话框源看,在我看来,第Tcl48-50行的呼叫正在阻塞。这是正确的假设吗?

尝试#2

我认为可能有一种Tcl直接通过使用命令的方法root.tk.call。自从我上班以来Python2,我认为底层Tcl就是对tk_getOpenFile。我必须确保Tcl解释器已线程化吗?有什么Tcl/Tk命令可以帮助我吗?

尝试#3

我可以使用os.listdir等等从头开始实现文件选择(可能在与服务器来回通信的单独HTML页面中)。这将不仅仅是痛苦的而且希望是可以避免的。


根据A. Rodas的以下回答,我得出以下结论:

import tkFileDialog
old_dialog = tkFileDialog.askopenfilename
try:
    tkFileDialog.askopenfilename = lambda *args, **kw: …
Run Code Online (Sandbox Code Playgroud)

python user-interface unit-testing tkinter

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

具有dumpdata和迁移的Django备份策略

这个问题中,我dumpdata为我的数据库设置了一个基于备份的系统.该设置类似于运行调用dumpdata并将备份移动到远程服务器的cron脚本,目的是简单地使用loaddata恢复数据库.但是,我不确定它是否适合迁移.loaddata现在有一个ignorenonexistent开关来处理已删除的模型/字段,但它无法解决使用一次性默认值或应用RunPython代码添加列的情况.

我看到它的方式,有两个子问题需要解决:

  • dumpdata使用每个应用程序的当前版本标记每个输出文件
  • 将夹具拼接到迁移路径中

我不知道如何在不引入大量开销的情况下解决第一个问题.是否足以为每个包含{app_name: migration_number}映射的备份保存额外的文件?

一旦第一个问题得到解决,我认为第二个问题就更容易了,因为这个过程大致是:

  1. 创建一个新数据库
  2. 将迁移运行到每个应用程序的适当位置
  3. loaddata使用给定的fixture文件调用
  4. 运行其余的迁移

这个问题中有一些代码(从错误报告中链接),我认为可以为此目的进行调整.

由于这些是数据库的相当规则/大型快照,因此我不希望将它们作为数据迁移使迁移目录混乱.

python django backup dumpdata django-migrations

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

使用输入模块时如何检查类型兼容性?

我正在使用 Python PEP484 类型提示为我用 Python 编写的 DSL 编写类型检查器。如果我有一个函数需要T其参数之一的类型,并且使用 type 的表达式调用它S,那么如何检查该调用是否有效?使用issubclass(S, T)够了吗?如果是这样,为什么要mypy进行如此复杂的is_subtype检查?或者我应该只使用该mypy版本?

编辑:这是一个例子来澄清我的意思。DSL 的功能定义为:

T = TypeVar('T', float, str)
def op_add(operand1: T, operand2: T) -> T:
    "Number addition or string concatenation."
    # In this DSL, `+` cannot be used with lists
    return operand1 + operand2  # Rely on Python overloading of `+`
Run Code Online (Sandbox Code Playgroud)

然后,用户输入一个表达式,该表达式被解析为语法树,其分支可以是:node = OperatorNode('+', Literal([5.0]), Variable("abc"))。我们还不知道变量的值abc,但列表永远不能与 一起使用+,所以我想引发 aTypeError来提醒用户。

如果我这样做 …

python type-hinting mypy

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

为什么Typescript编译器不会推断出这个过滤器typeguard?

我试图从数组中过滤掉未定义的值,但无法让编译器正确推断出结果类型.我知道我可以使用类型断言,但更愿意理解如何正确键入我的回调以实现此结果.

const isDefinedNum = (x: number | undefined, _i: number, _a: ReadonlyArray<number | undefined>): x is number => x !== undefined;
const a: (number | undefined)[] = [1, undefined, 2, undefined];
const b = a.filter(isDefinedNum);
Run Code Online (Sandbox Code Playgroud)

在上面,b是类型(number | undefined)[].我正在尝试让编译器使用以下类型来统一调用lib.d.ts:

filter<S extends T>(callbackfn: (this: void, value: T, index: number, array: ReadonlyArray<T>) => value is S): S[];
Run Code Online (Sandbox Code Playgroud)

type-inference typescript

5
推荐指数
0
解决办法
193
查看次数

如何使用字符串访问未知实例的插槽?

问题

给定一个实例和一个包含插槽名称的inst字符串,如何获取插槽的值?attrattrinst

当然,如果attr是符号而不是字符串,我通常只会使用(slot-value inst attr),但似乎我需要包信息才能正确调用intern(见下文)。

最小的例子

(defpackage :pack1
  (:use :common-lisp)
  (:export :*inst*))

(in-package :pack1)

(defclass temp-class ()
  ((temp-slot :initarg :temp-slot)))

(defvar *inst* (make-instance 'temp-class :temp-slot "value"))

(defpackage :pack2
  (:use :common-lisp :pack1)
  (:import-from :pack1 :temp-class))

(in-package :pack2)

(let ((inst *inst*)  ; In the real example, inst gets defined outside my control,
                     ; in yet another package
      (attr "temp-slot"))
  (format t "Given package name: ~S; "  ; …
Run Code Online (Sandbox Code Playgroud)

lisp symbols common-lisp clos slots

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

获得不通过字符串往返的浮点的最少数字?

给定一个s以十进制表示法表示实数的字符串,to_float返回最接近该数字的 IEEE 双精度浮点数。

给定一个 IEEE double f,返回满足 的to_string最短字符串。例如,使用Dragon4算法fsto_float(fs) == f


我的问题是:最短的字符串是什么,它是一个有效的非 NaN 有限数,这样to_string(to_float(s)) != s

我尝试过暴力破解,但只能检查最多 7 位数字 + 小数点的字符串

def check_numbers_up_to_n_digits(n):
    STR = np.format_float_positional
    FLOAT = float
    rngs = [tuple(range(1, i)) for i in range(n + 1)]
    for x in map(''.join, itertools.product('0123456789', repeat=n)):
        x = x.rstrip('0')
        if x == '': continue
        if x[0] == '0':
            s = '0.' + x[1:]
            if STR(FLOAT(s)) != s:
                print(repr(s))
            continue
        for d …
Run Code Online (Sandbox Code Playgroud)

floating-point

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