我熟悉使用python的with语句作为在抛出异常时确保对象完成的一种方法.这通常看起来像
with file.open('myfile.txt') as f:
do stuff...
Run Code Online (Sandbox Code Playgroud)
这是短手的
f = file.open('myfile.txt'):
try:
do stuff...
finally:
f.close()
Run Code Online (Sandbox Code Playgroud)
或者一个班级可能出现的其他任何终结例程.
我最近遇到了一段处理OpenGL的代码:
with self.shader:
(Many OpenGL commands)
Run Code Online (Sandbox Code Playgroud)
请注意,没有任何as关键字.这是否表明,__enter__和__exit__之类的方法仍然被调用,但该对象从未明确地在块使用(即,它是通过全局或隐含引用)?还是有一些其他意义在逃避我?
有没有办法使图形的x/y tic-labels格式取决于tic的值?我正在设想一种格式声明
set format y ( ( ( <arg> > 1e-3 ) && ( <arg> < 1e2 ) ) ? "%2.1f" : "10^{%T}" )
Run Code Online (Sandbox Code Playgroud)
以便将对数比例图表示为
10 ^ { - 4},10 ^ { - 3},0.01,0.1,1,10,10 ^ {2}
等等,为1附近的数字提供更自然的表示.
我知道这可以通过明确声明格式来完成,即,
set xtics ( "10^{-3}" 1e-3, "0.01" 0.01, "0.1" 0.1, "1" 1, "10" 10, "10^{2)" 1e2 )
Run Code Online (Sandbox Code Playgroud)
但我想避免这么具体,因为每当图表的范围发生变化时,这组标签就会发生变化.我希望这个问题的答案是'不',但这里有希望.