我们可以使用装饰器设计任何功能吗?

Python

在我的采访中,他们问我一个工具,该工具可以反转句子中的每个单词并从中创建最终句子。例如:

s = 'my life is beautiful'
output - `ym efil si lufituaeb` 

我知道这个问题很简单,请在几分钟后解决:

s = 'my life is beautiful'

def reverse_sentence(s):

    string_reverse = []

    for i in s.split():
        string_reverse.append("".join(list((reversed(i)))))

    print " ".join(string_reverse)

reverse_sentence(s)

然后他们要求使用来实现相同的功能decorator,而我在这里感到困惑。我知道decorator它如何使用以及何时使用的基础知识他们没有提到要wrap使用功能的哪一部分decorator他们告诉我使用args实现此功能kwargs,但我无法解决。有人可以帮我吗?如何将任何函数转换为装饰器?

据我所知,您可以decorator在需要时wrap your function或想要修改某些功能时使用。我的理解正确吗?

乔兰·比斯利(Joran Beasley)
def reverse_sentence(fn): # a decorator accepts a function as its argument
    def __inner(s,*args,**kwargs): #it will return this modified function
       string_reverse = []
       for i in s.split():
           string_reverse.append("".join(list((reversed(i)))))          
       return fn(" ".join(string_reverse),*args,**kwargs) 
    return __inner # return the modified function which does your string reverse on its first argument

我猜...

@reverse_sentence
def printer(s):
    print(s)

printer("hello world")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我们可以使用C ++进行Web设计/开发/编程吗?

来自分类Dev

我们可以使用内联模板而不使用任何类型的路由吗?

来自分类Dev

我们可以使用junit编写功能测试吗?

来自分类Dev

我们可以使用GAS的Chrome V8功能吗?

来自分类Dev

我们也可以使用Firebase更新功能来更新优先级吗

来自分类Dev

嵌入式系统我们可以在ISR中使用任何功能吗?

来自分类Dev

我们可以使用JQuery或Javascript创建CSS选择器规则吗?

来自分类Dev

我们可以使用合并器代替Mapreduce中的reduce吗?

来自分类Dev

我们可以使用javascript将图像推送到浏览器缓存吗

来自分类Dev

我们可以使用其他类型的时间选择器吗?

来自分类Dev

我们可以使用Notepad ++解码URL吗?

来自分类Dev

我们可以使用类作为标题吗

来自分类Dev

我们可以使用动态管道吗?

来自分类Dev

我们可以在Angular JS的装饰器中访问$ provide吗?

来自分类Dev

我们可以使用Inno Setup 6.1中新的“版本”功能来简化脚本吗?

来自分类Dev

我们可以使用Inno Setup 6.1中新的“版本”功能来简化脚本吗?

来自分类Dev

我们可以在系统Verilog中没有任何功能/任务的类中使用print语句吗

来自分类Dev

我们可以使用本地广播接收器在活动和服务之间进行通信吗?

来自分类Dev

我们可以使用libgit2sharp从git服务器获取特定文件吗?

来自分类Dev

我们可以使用pm2启动Vue cli的开发服务器吗?

来自分类Dev

我们可以使用javascript获取安装在浏览器中的搜索引擎列表吗?

来自分类Dev

我们可以使用DRF创建Rest API视图以从服务器下载文件吗?

来自分类Dev

我们可以使用虚拟机建立一个对世界开放的服务器吗?

来自分类Dev

我们可以使用 flv.js 播放器播放 .m3u8 文件吗?

来自分类Dev

我们可以使用 Safari 浏览器或 WKWebView 获得正常质量的 YouTube 视频吗?

来自分类Dev

我们必须在装饰器的包装函数中使用函数值吗?

来自分类Dev

什么时候使用类型推断?我们总是可以使用VAR吗?

来自分类Dev

通过使用openJDK而不是Oracle,我们会失去任何功能吗?

来自分类Dev

可以使用Python装饰器返回非功能对象吗?

Related 相关文章

  1. 1

    我们可以使用C ++进行Web设计/开发/编程吗?

  2. 2

    我们可以使用内联模板而不使用任何类型的路由吗?

  3. 3

    我们可以使用junit编写功能测试吗?

  4. 4

    我们可以使用GAS的Chrome V8功能吗?

  5. 5

    我们也可以使用Firebase更新功能来更新优先级吗

  6. 6

    嵌入式系统我们可以在ISR中使用任何功能吗?

  7. 7

    我们可以使用JQuery或Javascript创建CSS选择器规则吗?

  8. 8

    我们可以使用合并器代替Mapreduce中的reduce吗?

  9. 9

    我们可以使用javascript将图像推送到浏览器缓存吗

  10. 10

    我们可以使用其他类型的时间选择器吗?

  11. 11

    我们可以使用Notepad ++解码URL吗?

  12. 12

    我们可以使用类作为标题吗

  13. 13

    我们可以使用动态管道吗?

  14. 14

    我们可以在Angular JS的装饰器中访问$ provide吗?

  15. 15

    我们可以使用Inno Setup 6.1中新的“版本”功能来简化脚本吗?

  16. 16

    我们可以使用Inno Setup 6.1中新的“版本”功能来简化脚本吗?

  17. 17

    我们可以在系统Verilog中没有任何功能/任务的类中使用print语句吗

  18. 18

    我们可以使用本地广播接收器在活动和服务之间进行通信吗?

  19. 19

    我们可以使用libgit2sharp从git服务器获取特定文件吗?

  20. 20

    我们可以使用pm2启动Vue cli的开发服务器吗?

  21. 21

    我们可以使用javascript获取安装在浏览器中的搜索引擎列表吗?

  22. 22

    我们可以使用DRF创建Rest API视图以从服务器下载文件吗?

  23. 23

    我们可以使用虚拟机建立一个对世界开放的服务器吗?

  24. 24

    我们可以使用 flv.js 播放器播放 .m3u8 文件吗?

  25. 25

    我们可以使用 Safari 浏览器或 WKWebView 获得正常质量的 YouTube 视频吗?

  26. 26

    我们必须在装饰器的包装函数中使用函数值吗?

  27. 27

    什么时候使用类型推断?我们总是可以使用VAR吗?

  28. 28

    通过使用openJDK而不是Oracle,我们会失去任何功能吗?

  29. 29

    可以使用Python装饰器返回非功能对象吗?

热门标签

归档