Как вернуть значение из функции генератора в простой - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь сделать проект с простым, в котором есть класс клиента и класс Bike. Я хочу использовать переменную класса Bike в классе Customer, используя объект. Но я также хочу использовать yield env.timeout () вфункция генератора, как я могу получить значение bike_info из класса Bike в класс Customer.(код является частью 900-строчного кода, который я написал)

import simpy
import pandas
class Customer():
    def __init__(self):
        self.bike_id = int()
        self.interval = int()
        self.bike_X = float()
        self.bike_Y =float()
    def simulate(self,env):
        self.bike = Bike()#created an object of Bike
        self.bike_id,self.interval,self.bike_X,self.bike_Y =   self.bike.bike_info


class Bike():

    def __init__(self):
        self.bike_id =int()
        self.bike_coordinates = tuple()
        self.minimum_duration =int()
        self.bike_info = tuple()
    def select_bike(self,env):
        '''Calculate the minimum duration between station and nearest bike this is obtained using the google distance matrix api'''                
        self.minimum_duration = 5 #say
        self.bike_coordinates =48.8584, 2.294 # say x is latitude and y is longitude       
        self.bike_id =98 #say
        yield env.timeout(int(self.minimum_duration))

        self.bike_info = (self.bike_id,self.minimum_duration,self.bike_coordinates)

if __name__ == "__main__":
    env = simpy.Environment()
    c = Customer()
    c.simulate(env)

Я ожидаю получить значение bike_info в классе Customer, но получаю ошибку ValueError: для распаковки требуется более 0 значений

...