我有一个类对象 ,具有Task
四个属性t
、date
和。只必须包含一个值,其他三个属性是可选的。我编写了一个 print 方法,如果它们不为空,它将打印字符串:priority
checked
t
class Task:
def __init__(self, _t, _date=None, _priority=None, _checked=False):
self.t = _t
try:
self.date = parser.parse(_date, dayfirst=True) if _date else None
except:
self.date = None
self.priority = _priority
self.checked = _checked
def print(self):
print(self.t, end="")
if self.date:
print(self.date, end="")
if self.priority:
print(self.priority, end="")
...但我想知道是否有办法将其压缩成一行。在 VB.NET 中,您可以执行以下操作:
Console.Writeline(me.t, If(me.date Is Not Nothing, me.date, ""), If(me.priority Is Not Nothing, me.priority, ""))
我尝试在 Python 中执行此操作,如下所示,但它的工作方式不同:
print(self.t, if(self.date, self.date), if(self.priority, self.priority))
有没有一条线的解决方案,或者任何更简洁的方法?