randomshirtsize
создает случайный вывод при каждом вызове, поэтому, когда вы хотите использовать его в randomshirtdescription
, вы должны сохранить его значение в локальной переменной и использовать значение этой переменной в if
заявления.например:
def randomshirtdescription():
random_size = randomshirtsize()
if random_size == 's':
return 'small'
elif random_size == 'm':
return 'medium'
elif random_size == 'l':
return 'large'
else:
return 'Error! No valid size found'
Редактировать
Если вы сделаете упомянутое изменение, ваши функции будут работать правильно, но их поведение будет некорректным при использовании с вашим классом.Я думаю, что лучше внести в них изменения.
Я думаю, что лучше изменить функцию randomshirtdescription
на функцию, которая возвращает описание данного размера рубашки.Примерно так:
def shirtdescription(shirt_size):
if shirt_size == 's':
return 'small'
elif shirt_size == 'm':
return 'medium'
elif shirt_size == 'l':
return 'large'
else:
return 'Error! No valid size found'
Теперь вы можете получить ожидаемые результаты из своего кода с помощью вызова вашего класса и функций, если выполните следующее:
random_size = randomshirtsize()
shirt1 = shirt('blue', random_size, randomshirtdescription(random_size))
Но, тем не менее, это решение не является объектно-ориентированным.ориентированный.Я думаю, что лучше преобразовать этот новый shirtdescription
в метод вашего shirt
класса.
Я думаю, что лучший класс будет выглядеть примерно так:
class shirt:
def __init__(self, color, size):
self.color = color
self.size = size
self.size_description = self.get_size_description()
def get_size_description(self):
if self.size == 's':
return 'small'
elif self.size == 'm':
return 'medium'
elif self.size == 'l':
return 'large'
else:
return 'Error! No valid size found'