可以在Python中创建无限的嵌套列表.这很清楚,虽然不受欢迎,但绝对没用,这是一个众所周知的事实.
>>> a = [0]
>>> a[0] = a
>>> a
[[...]]
>>> a[0] == a
True
Run Code Online (Sandbox Code Playgroud)
我的问题是,这里发生了什么:
>>> a = [0]
>>> b = [0]
>>> a[0], b[0] = b, a
>>> a
[[[...]]]
>>> b
[[[...]]]
>>> a == b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
RuntimeError: maximum recursion depth exceeded in cmp
>>> a[0] == b
True
>>> a[0][0] == b
Traceback (most recent call last):
File "<stdin>", line 1, in <module> …Run Code Online (Sandbox Code Playgroud) 这可能是一个愚蠢的问题,但由于我找不到答案,我不得不问它.
在交互式python中,我想处理一条消息:
>>> message = sys.stdin.readlines()
Run Code Online (Sandbox Code Playgroud)
一切正常,但是......如何阻止它获取输入并将其保存到消息变量中?使用ctrl + c停止会停止整个过程,因此无需在任何地方保存输入.我想有一个简单的答案,我找不到...
首先 - 我对错误的代码没有问题,我知道这个异常是如何工作的.
我问,如果有任何方法在try/except块的代码中捕获IndentationError?例如,假设我正在为其他人编写的函数编写测试.我想在try/except块中运行它并处理他/她可以做出的所有警告.我知道,这不是一个最好的例子,但第一个出现在我脑海中.请不要专注于一个例子,而是关注问题.
我们来看看代码:
try:
f()
except IndentationError:
print "Error"
print "Finished"
Run Code Online (Sandbox Code Playgroud)
功能:
def f():
print "External function"
Run Code Online (Sandbox Code Playgroud)
结果是:
External function
Finished
Run Code Online (Sandbox Code Playgroud)
这就是我已经准备好理解的东西,因为外部函数的缩进是一致的.
但是当函数看起来像这样:
def f():
print "External function"
print "with bad indentation"
Run Code Online (Sandbox Code Playgroud)
异常未处理:
print "with bad indentation"
^
IndentationError: unexpected indent
Run Code Online (Sandbox Code Playgroud)
有没有办法实现它?我想这是编译的问题,到目前为止我看不到任何可能性.是否except IndentationError任何意义?
我不确定,这是一个容易解决的简单问题,还是需要深入挖掘的东西.
假设我有一个Item带变量Item.a和对象的对象Item.b.现在我有两个这些对象的实例:Item1和Item2
我需要的是这样的:
for (value_1, value_2) in [(Item1.a, Item2.a), (Item1.b, Item2.b)]:
if value_1 != value_2:
value_1 = value_2
Run Code Online (Sandbox Code Playgroud)
当然,这只是一个更复杂问题的例子.替换是可以的,它找到对象之间的差异并替换它们.问题是,我一直在这些变量的副本上进行,而不是在对象引用上.一旦它完成循环,我可以同时打印Item1和Item2他们是一样的循环之前.
有没有可能将引用传递给循环?我知道如何使用列表,但我找不到对象的答案.
这就是我要找的东西.在我的表格中,我有三个字段,都是CharFields.这些是姓名,姓氏和用户名.用户名应设置为Name和Surname的总和,因此对于Name = Joe,Surname = Black,Username = Joe Black.
显示表单时,所有字段都为空.我想在将数据写入Name或Surname时自动填充用户名.这样做的原因是我不必填写用户名字段,但是在我想要的时候,我可以将它设置为与Name + Surname不同.
是否可以不使用jQuery?如果是这样,有没有这方面的好教程?