擅长:python、mysql、java
<p>我的评论可能错了。实际上我在想这样的事情。但这与我的“基本”知识相去甚远。我只是喜欢简化问题——可能对某人有用,但不要把它当作“最佳答案”。你知道吗</p>
<p>此处采用的示例:
<a href="https://www.programiz.com/python-programming/decorator" rel="nofollow noreferrer">https://www.programiz.com/python-programming/decorator</a></p>
<pre><code>def ordinary(string):
return int(string)
# normal function
print(ordinary("2")) # returns 2
</code></pre>
<p>现在让我们改变这个函数:</p>
<pre><code># a function that enhances a function
def enhance(func):
def inner(string):
try:
return func(string)
except:
return None
return inner
# now let's enhance it assigning it to a variable name
# this is the 'decorate' part
get_or_none = enhance(ordinary)
# use new function
print(get_or_none("a")) # returns None
print(get_or_none("12")) # return 12
# old function will throw an error still
print(ordinary("a")) # throws an error
</code></pre>