Groovy 与 Python 的差异【翻译】

本文内容

  • General 一般
  • Lists 列表
  • Maps 映射
  • Ranges/Slices 范围/片段
  • Object access 对象访问
  • 参考资料

Groovy 是一种基于 JVM 的敏捷开发语言,它结合了 Python、Ruby 和 Smalltalk 的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库。

General

Python


Groovy


repr(x)


x.inspect(), x.dump()


x.y if x else None


x?.y


"%(foo)s" % locals()


"${foo}"

Lists 列表

Python


Groovy


not x


!x

x.empty


len(x)


x.size()


for item, idx in enumerate(x): ...


x.eachWithIndex { item, idx -> ... }

Maps 映射

Python


Groovy


{}


[:] // an empty map


Depends:

d if used like: for k in d:

list(d) if list needed

d[iter].keys() explicitly


d.keySet()


d.[iter]values()


d.values()


[k+1 for k in d]


d.collect { k, v -> k+1 }


d = dict(zip(k, v))


k = 1..3

v = ‘a‘..‘c‘

d = [:]; k.eachWithIndex { it, i -> d[it] = v[i] }

println d // [1:"a", 2:"b", 3:"c"]

Ranges/Slices 范围/片段

Python


Groovy


range(3)


0..<3


range(1, 3+1)


1..3


range(0, 10, 2)


not represented as a data type but you can use

0.step(10, 2) {...}


"abcdef"[3:]


"abcdef"[3..-1]

Object access 对象访问

Python


Groovy


m = ‘strip‘; getattr(‘ ! ‘, m)()


m = ‘trim‘; ‘ ! ‘."$m"()


args = (‘a‘, 2); ‘abcabc‘.find(*args)


args = [‘a‘, 2]; ‘abcabc‘.indexOf(*args)

参考资料

时间: 2024-10-24 06:15:57

Groovy 与 Python 的差异【翻译】的相关文章

python从零开始 -- 第2篇之python版本差异

python从零开始 -- 第2篇之python版本差异 第0篇开始,咱们就说选择 python 3.x,一般来说,咱们面临选择的时候总是想了解更多一点,并且版本之间的对比能引申出很多有意思的故事和知识点,对于加深认识也是很有帮助. 让我们先从python发展史开始吧 这份官方文档着python详细的版本列表,这是中文版介绍,一长串的内容都是python生命力的体现,python在TIOBE排行榜上也是排名靠前,现已超越 c++ 成为探花,仅次于 Java 和 C,看到这里是不是感叹python

Match files that match pattern in Groovy and Python

转自: http://atobs.blogspot.fr/2012/08/match-only-files-that-match-pattern-in.html#!/2012/08/match-only-files-that-match-pattern-in.html Groovy: In Groovy we can use the eachDirRecurse and eachFileMatch() methods to get all the file names displayed. de

使用Python进行单词翻译

在进行英文文献阅读时,经常会出现一些不认识的单词,但对于一些pdf阅读器,比如Foxit阅读器使用翻译功能需要点击(Extra->Translate),并且启用了翻译功能将不能使用注释功能,这对于阅读者来说将是极不方便的.所以为了方便查询单词,自己开发了个Windows环境下的Python程序用于监控并查询单词,而只需的操作就是选中单词并按Ctrl+C即可. 该Python程序主要分为三部分:从另外一个应用程序中获取需要查询的单词,单词翻译和单词显示. 从另外一个应用程序中获取需要查询的单词涉及

Python 调用百度翻译API

由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu api 整了一下,和大家分享. 1.百度翻译api 由于百度翻译api需要用到API key,所以,得注册百度开发者账号,然后创建开发者服务工程,得到的授权API key,具体操作可查看官方文档,请点 百度翻译api 2.代码实现  基本思路是:先将用户反馈抓下来,然后再处理html标签,再调用百度

python制作英语翻译小工具

用python爬虫可以制作英语翻译小工具.来看下代码吧- import requests,json #函数封装 def translator(): session=requests.session() i=input('请问你要翻译什么?') url='http://fanyi.youdao.com/translate' headers={ 'Referer': 'http://fanyi.youdao.com/', 'User-Agent': 'Mozilla/5.0 (Macintosh;

Python实现在线翻译的程序

import urllib.request import urllib.parse import json content=input("想要翻译的英文:") url="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=http://www.youdao.com/" data={} data["

python爬虫百度翻译

python3,爬取的是百度翻译手机版的网页 运用requests,json模块 英汉互译,运行结果 #!/bin/python3 # -*- coding: UTF-8 -*- #============================================= #describe:an en to zh and zh to en translater #version:1 #update:2018-08-03 #--- #author:unihon #E-mail:[email pr

Python 调用 百度翻译 出现error997 的解决办法

如果程序不报错,其主要原因是百度防爬虫,可能是因为电脑网页版本的百度翻译防爬所致,换用手机版本的百度翻译暂时可行.这也是很多视频都是用手机版百度翻译来讲解的原因: 大多数换用手机版的也会报997错误,或许是手机也防爬虫了吧,如果用get的方法来爬虫是可以的,但是使用post方法是会报997错误的 以下是我的get方法的爬虫代码,大佬们别喷,我刚学: import pprint import requests url = "http://www.baidu.com" response =

python 有道翻译

github上的代码稍微改了改 1 import urllib.request 2 import urllib.parse 3 import json 4 import os 5 6 7 while (1): 8 url = r'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=http://www.youdao.com/' 9 10 '''