最后几个控制用的

1.pass
什么都没有发生,直接过去。这个神马都不做的东西,是一个占位符的作用。有的时候,程序需要一个if语句,然后进行测试,但是缺少一个语句块的代码,所以,先空着。
if name=='hello':
    print 'welcome'
elif name='what':
    #还没有完
    pass
elif name='hi'
    print 'you are welcome'



2.del
删除。
>>>x=1
>>>x
1
>>>del x
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined



3.exec
执行字符串。这里有一个叫做黑暗魔法的东西,使用这个exec好像不是一件好事。看看代码。
>>> exec "print 'hello world'"
hello world

反正用这个exec挺危险的,所以,经常给它提供命名空间。所谓命名空间,c++里面也有,不懂是神马意思。暂时可以理解为,放置变量的地方。
>>> from math import sqrt
>>> exec 'sqrt=1'
>>> sqrt(4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable

后面的那个调用的函数就不可以使用了,因为被第一个给覆盖了。所以,要用命名空间来解决这个问题。exec的好处是可以动态地创建代码字符串,如果字符串从其他地方获得,不知道含有神马,就麻烦了,很可能像上面一样。
使用命名空间的:
>>> from math import sqrt
>>> scope={}
>>> exec 'sqrt=1' in scope
>>> sqrt(4)
2.0

这样就解决了问题。

4.eval
呵呵,这个看起来很陌生,实际很熟悉。在区别raw_input 和input的时候,就看见过这个,eval(raw_input())就等于input().
>>> eval(raw_input('enter :'))
enter :3+4
7

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值