有没有更好的方法来编写这个代码?我知道这很简单,但我写的方式似乎太重复了。在
我没有必要寻找一行天才代码,只是一些其他可读的,有用的替代品。在
提前谢谢!在
def __unicode__( self ):
location = []
if self.room != None:
location.append( self.room )
if self.floor != None:
location.append( self.floor )
if self.building != None:
location.append( self.building )
location.append( self.property )
return ", ".join( location )
始终设置self.property
,对于self.room
、self.floor
和{models.py
的一部分,以防有人想知道。在
附带问题:使用property
作为变量名是个坏主意吗?我注意到property
在语法下高亮显示,但我查了一下,发现它不是Python reserved word。在
以下是完整的课程:
^{pr2}$
如果选择要附加的第一个非None元素,则第一部分是对原始问题的回答。请参阅下面的更新,以解决修订后的问题
我想这是一个相当简单的解决方案,而不是试图去做疯狂的一句话或是一些过于花哨的事情。只需循环它们并附加第一个不是None的,然后中断。在
如果你想要一行代码,下面是一个列表理解:
^{pr2}$与最后一个更具可读性的折衷方案是:
@tzaman建议不要用
property
作为变量名是对的。它是一种内置类型:更新
因为在你的评论中,你提到你真正想要的是那些不是“无”的属性,这是一个超级简单的列表组件:
更新2:在@Vaughn Cato
只需使用
or
运算符:它自动返回第一个计算结果为
True
的表达式的值。 而且,property
不是保留字,但它是一个built-in-所以是的,不要使用它。在根据jdi发布的内容:
相关问题 更多 >
编程相关推荐