相关疑难解决方法(0)

如何制作一系列功能装饰器?

如何在Python中创建两个装饰器来执行以下操作?

@makebold
@makeitalic
def say():
   return "Hello"
Run Code Online (Sandbox Code Playgroud)

...应该返回:

"<b><i>Hello</i></b>"
Run Code Online (Sandbox Code Playgroud)

我不是试图HTML在一个真实的应用程序中这样做 - 只是试图了解装饰器和装饰器链是如何工作的.

python decorator python-decorators

2647
推荐指数
17
解决办法
49万
查看次数

On Error在Python中恢复Next

片段1

do_magic() # Throws exception, doesn't execute do_foo and do_bar
do_foo()
do_bar()
Run Code Online (Sandbox Code Playgroud)

片段2

try:
    do_magic() # Doesn't throw exception, doesn't execute do_foo and do_bar
    do_foo() 
    do_bar()
except:
    pass
Run Code Online (Sandbox Code Playgroud)

代码段3

try: do_magic(); except: pass
try: do_foo()  ; except: pass
try: do_bar()  ; except: pass
Run Code Online (Sandbox Code Playgroud)

有没有办法优雅地编写代码片段3?

  • 如果do_magic()失败或没有,do_foo()do_bar()应该执行.
  • 如果do_foo()失败,do_bar()应该执行.

在Basic/Visual Basic/VBS中,有一个语句叫做On Error Resume Next这个.

python error-handling exception

9
推荐指数
2
解决办法
2万
查看次数