python能做java的事吗_什么样的事情可以用Java而不是Python?

我猜使用Jython,你可以用Python做任何你可以在Java中做的事情.

相反,Python具有PyPy编译器,这是非常酷的 – 具有多个备份的虚拟机(Java Runtime,LLVM,.net和Python IIRC),多个垃圾收集器,多个实现(Stackless)等.我知道Java具有虚拟机的大选择,但PyPy的增长是惊人的,因为它是用RPython编写的 – 这是一个相当有成效的语言.

此外,Java可以做到这一点,在1个文件中,少于20行,没有库导入?显然,这两种语言都有图书馆可以做到这一点,但我只是在谈论语言的灵活性.

class Logger(object): # boilerplate code

def log(self,level,msg,*args,**kwargs): # *args, **kwargs = flexible arguments

self._log(level,msg,*args,**kwargs) # call with flexible argments

def _log(self,level,msg,*args,**kwargs):

# override me at runtime :)

# I think Java people call this Dependency Runtime Injection

if level>1:

print msg,args,kwargs

logger = Logger() # boilerplate code

def logged(level): # what pattern do you call this?

def logged_decorator(function): # and this?

def func(*args,**kwars):

name = func.__name__ # look ma, reflective metaprogramming!

logger.log(level,name,*args,**kwargs)

return func(*args,**kwargs)

return func # boilerplate code

return logged_decorator # boilerplate code

使用示例

@logged

def my_func(arg1,arg2):

# your code here

pass

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值