在python中为类属性指定条件

2024-06-11 16:28:58 发布

您现在位置: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 =

我想为我的扫描开始时间和扫描结束时间指定如下条件:

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

我知道我不能这样编码。有人知道我怎么解决这个问题吗


Tags: 代码selfreturninitdefnp时间random
2条回答

您可以创建一个单独的函数,并在构造函数(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

您可以使用如下条件:

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

通过自动将其设置为arrivalTime,然后检查arrivalTime<=插槽(与>;相反)。如果是,则将scanStartTime设置为slot,否则不执行任何操作

相关问题 更多 >