当前位置:  开发笔记 > 编程语言 > 正文

我应该使用什么而不是在Python中赋值in-expression?

如何解决《我应该使用什么而不是在Python中赋值in-expression?》经验,为你挑选了1个好方法。

根据这个页面,一个不能使用代码

if variable = something():
#do something with variable, whose value is the result of something() and is true

所以如果我想拥有以下代码结构:

if a = something():
#do something with a
elif a = somethingelse():
#...
#5 more elifs

其中something()函数是计算密集型的(我的意思是使用该函数然后再次执行它以便在第一个函数为true的情况下为变量赋值),我应该在Python中编写什么?再添加7个变量而不是1个?



1> Alex Martell..:

几年前我在2001年遇到过这个问题 - 因为我从C语言中使用赋值和测试的参考算法音译到Python,我很想为第一个草稿保留一个类似的结构(然后重构一次)正确性得到了很好的测试).所以我写了一个配方的食谱(见这里),它归结为...:

class DataHolder(object):
    def set(self, value): self.value = value; return value

所以if/ elif树可以变成:

dh = DataHolder()
if dh.set(something()):
  # do something with dh.value
elif dh.set(somethingelse()):
  # ...

这个DataHolder课程可以用各种方式进行装饰(在网上和书籍版本中都有所体现),但这是它的要点,足以回答你的问题.

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有