У меня есть объект класса Task
с четырьмя свойствами: t
, date
, 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))
Есть ли однострочное решение или какой-нибудь способ попроще?