python 如何实现类似lua中的 a = a or 0,即第一次声明a的时候就已经可以使用此语法了。在python中会报错
发布网友
发布时间:2022-05-30 13:08
我来回答
共3个回答
热心网友
时间:2023-10-17 21:33
这是lua的语法or and的特殊之处
a and b 若a为真 则返回b 若a为假 则返回a本身
a or b 若a为真 则返回a 若a为假 则返回b
所以 c = a or b 对应的python语句是
if a:
c = a
else:
c = b
python很久没用了 不知道有没记错
热心网友
时间:2023-10-17 21:34
如果b没有定义的话,任何使用都会抛出异常,如果你想要模拟,就要用try...except...来捕获并设置。不过没必要用一种语言去模拟另外一种语言的特性,有时候模拟起来太麻烦了。yaoyue1019 的回答对于未定义的是有异常的,对于if 判断成功的才会执行c=a. 测试一下就知道了。
一般我们在python函数中会把用户可能不传的赋予缺省值,比如None什么的,所以我不知道你干嘛要模拟lua这个特点?追问感谢你的回答,try...except...应该是个办法,不过那就比较麻烦了。我的需求是这样的:我想要使用一个变量,如果它已经被声明过并且已经有值了,那我就沿用它的值,如果它没有值,那么我这次就声明它并且给它赋值,所以才会需要 GLOBAL_TABLE = GLOBAL_TABLE or {}
追答那估计只能用globals()返回看是否存在了。不过也是很别扭的方法。不过检测当前是否存在某个变量用globals()是可以达到目的的。
热心网友
时间:2023-10-17 21:34
a = a if a else 0