我尝试了以下代码:
$(function() {
var content = $('<div style="background-color: yellow">aaaaaa</div>');
var dialog = $(content)
.dialog({
autoOpen: true,
modal: true,
width: 300,
height: 300,
title: "MyTitle",
position: "center",
overflow: "auto",
resize: function(event, ui) {
let width = ($(".ui-dialog-content")[0].scrollWidth - 33.3) + "px";
console.log(width);
$(".ui-dialog-content").css("width", width);
}
});
dialog.dialog('open');
});
编译器报告了SyntaxError:无效的语法。有什么问题吗?
[编辑:]我正在尝试做的是:
with x as 1:
y = 1
with z as 1:
w = 1
我想更改Tensorflow中的名称范围以共享变量。我看了在线教程,但是并没有太大帮助。
答案 0 :(得分:5)
您的代码略有简化:
with x as 1:
y = 1
…翻译成这样:
try:
1 = x.__enter__()
y = 1
finally:
1.__exit__()
写1 = x.__enter__()
显然会引发SyntaxError: can't assign to literal
,因为这并不意味着给文字常量1
赋新值。
在with
语句中执行相同的操作会引发相同的异常。 (在旧版本的Python(我认为只有2.5?)中,错误消息没有那么有用,它只是说SyntaxError: invalid syntax
,但问题是相同的。)
根据x
中的内容,越过SyntaxError
可能会引发一个新的异常AttributeError: __enter__
。 context managers中只能使用with
statement。粗略地讲,这些都是知道自己如何清理的东西,无论如何,在某些代码块的末尾清理它们的重要位置。文件是典型的示例:退出块时它们会调用self.close()
,以确保不会因放置数百个打开的文件而导致操作系统错误,也不会刷新最后一个write
,或其他此类问题。
有关with
的更多信息,请参见PEP 343,这是最初将with
添加到Python 2.5或Understanding Python's "with" statement (from effbot)的提议。
所以,这里的问题是:您想做什么?如果您只想将值1
分配给名称x
,那么您已经知道该怎么做,因为您是在下一行使用y
来完成此操作的:仅{{1 }}。如果您尝试做一些不同的事情……好吧,也许有一种方法可以做到,但是x = 1
可能距离正确答案还很遥远。
答案 1 :(得分:1)
您误解了Python的with statement。如果您告诉我们您想做什么,我们可以为您提供帮助。
{'first_name': 'Alyssa', 'favorite_number': 256, 'favorite_color': None}
{'first_name': 'Ben', 'favorite_number': 7, 'favorite_color': 'red'}
创建具有三个特征的上下文(执行环境):
with context_obj as name:
方法(函数); __enter__
; name
方法,无论我们如何离开上下文。您的尝试__exit__
在所有特征上均失败。 with x as 1
没有x
或__enter__
方法;没有返回值;您无法将该返回值分配给常量__exit__
。