python与宏_python宏:用例?

Hy

为了自己的使用,我创建了一个python模块(espy),它允许使用参数、循环和条件代码生成宏定义:

创建source.espy文件,然后启动相应的函数,然后生成source.py。

它允许如下语法:

macro repeat(arg1):

for i in range(%arg1%):

socket

print "stop"

...

repeat(5):

print "Hi everybody"

print "See you soon"

相当于:

...

for i in range(5):

print "Hi everybody"

print "See you soon"

print "stop"

其他语法:

macro doit(arg1):

for i in %arg1%:

socket suit(arg2):

socket

print %arg2%

socket check(arg3):

if %arg2%==%arg3%:

socket

...

#use

doit(range(10)):

suit(result):

result=i*i

check(result,25):

print "I knew that 5*5 == 25"

相当于:

for i in range(10):

result=i*i

print result

if result==25:

print "I knew that 5*5 == 25"

此外,ESpy还有两个功能:“macro for”和“macro if”。一个例子:

macro for v in [6,10,12,20,23]:

macro if 7

True:

print "At %v%, I'm awake."

False:

print "At %v%, I'm sleeping."

由ESpy翻译为:

print "At 6, I'm sleeping."

print "At 10, I'm awake."

print "At 12, I'm awake."

print "At 20, I'm awake."

print "At 23, I'm sleeping."

我在很多情况下都使用这个模块。它允许更结构化和更短的代码。通过它,我从1000行espy代码中生成了65000行清晰有效的python代码,用于一个新的Chess引擎项目(仍在进行中)。

如果在未来的版本中Python可以包含宏,那么它将变得更加令人印象深刻。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值