在python中为类属性指定条件

时间:2019-05-21 21:42:11

标签: python

我有以下代码


    def __init__(self, calltime, slot):
        self.calltime = calltime
        self.slot = slot
        self.delay = np.random.normal(loc=0, scale=2.5,size=None)
        self.arrivalTime = self.slot + dt.timedelta(minutes=self.delay)
        self.scanWaitingTime = self.arrivalTime - self.slot
        self.scanStartTime =
        self.scanEndTime =

我想为我的scanStartTime和scanEndTime指定条件,如下所示:

self.scanStartTime = if self.arrivalTime > slot:
                        return arrivalTime
                     else:
                        return slot

我知道我不能用这种方式编写代码。有人知道我该如何解决吗?

2 个答案:

答案 0 :(得分:1)

您可以使用以下条件:

self.scanStartTime=self.arrivalTime
if self.arrivalTime<=slot:
    self.scanStartTime=slot

这可以通过自动将其设置为到达时间,然后检查是否到达时间<=槽(>的相反)来实现。如果是,则将scanStartTime设置为slot,否则不执行任何操作。

答案 1 :(得分:0)

您可以创建一个单独的函数,并在构造函数( init )方法中调用它:

def __init__(self, calltime, slot):
    self.calltime = calltime
    self.slot = slot
    self.delay = np.random.normal(loc=0, scale=2.5,size=None)
    self.arrivalTime = self.slot + dt.timedelta(minutes=self.delay)
    self.scanWaitingTime = self.arrivalTime - self.slot
    self.scanStartTime = self.get_scan_start_time()
    self.scanEndTime = ""

def get_scan_start_time(self):
    if self.arrivalTime > self.slot:
        return self.arrivalTime
    else:
        return self.slot