我确信在看到答案之后我会感到愚蠢,但我仍然在网络上遇到史前代码,我不确定是否仍然适用.我的问题是"我如何使用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)
"实际工作的其他东西".实际上是有效的,所以我确定该函数被调用并且按钮被找到了.我似乎无法将"新
文本" 粘贴到按钮中!
非常感谢.
说我有一个课程:
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__.
现在我正在使用eval并re从repr()通话中提取字典,但我想检查是否有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) 有什么方法可以自动执行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。
如果我可以使用基础小部件,则可以生成此问题中的点击。但是,从对话框源看,在我看来,第Tcl48-50行的呼叫正在阻塞。这是正确的假设吗?
我认为可能有一种Tcl直接通过使用命令的方法root.tk.call。自从我上班以来Python2,我认为底层Tcl就是对tk_getOpenFile。我必须确保Tcl解释器已线程化吗?有什么Tcl/Tk命令可以帮助我吗?
我可以使用os.listdir等等从头开始实现文件选择(可能在与服务器来回通信的单独HTML页面中)。这将不仅仅是痛苦的而且希望是可以避免的。
根据A. Rodas的以下回答,我得出以下结论:
import tkFileDialog
old_dialog = tkFileDialog.askopenfilename
try:
tkFileDialog.askopenfilename = lambda *args, **kw: …Run Code Online (Sandbox Code Playgroud) 在这个问题中,我dumpdata为我的数据库设置了一个基于备份的系统.该设置类似于运行调用dumpdata并将备份移动到远程服务器的cron脚本,目的是简单地使用loaddata恢复数据库.但是,我不确定它是否适合迁移.loaddata现在有一个ignorenonexistent开关来处理已删除的模型/字段,但它无法解决使用一次性默认值或应用RunPython代码添加列的情况.
我看到它的方式,有两个子问题需要解决:
dumpdata使用每个应用程序的当前版本标记每个输出文件我不知道如何在不引入大量开销的情况下解决第一个问题.是否足以为每个包含{app_name: migration_number}映射的备份保存额外的文件?
一旦第一个问题得到解决,我认为第二个问题就更容易了,因为这个过程大致是:
loaddata使用给定的fixture文件调用这个问题中有一些代码(从错误报告中链接),我认为可以为此目的进行调整.
由于这些是数据库的相当规则/大型快照,因此我不希望将它们作为数据迁移使迁移目录混乱.
我正在使用 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来提醒用户。
如果我这样做 …
我试图从数组中过滤掉未定义的值,但无法让编译器正确推断出结果类型.我知道我可以使用类型断言,但更愿意理解如何正确键入我的回调以实现此结果.
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) 给定一个实例和一个包含插槽名称的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) 给定一个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) python ×4
typescript ×2
unit-testing ×2
backup ×1
button ×1
clos ×1
common-lisp ×1
django ×1
dumpdata ×1
eval ×1
html ×1
javascript ×1
lisp ×1
mypy ×1
node-modules ×1
slots ×1
symbols ×1
tkinter ×1
tsconfig ×1
type-hinting ×1